android监听器
① android按钮监听器OnClick()的参数问题
包导错了,onclickListener是有同名的,你实现的dialogInterface的,不是view的
你把import android.content.DialogInterface.OnClickListener
替换为 import android.view.View.OnClickListener
② android多个按钮绑定同一个监听器
可以用一个监听器(Listener)来实现多个按钮的onClick监听,下面是一个具体的例子:
③ 关于Android chronometer 监听器的使用问题
使用Service。给你一个demo:
需要开始定时任务的时候调RegistryBeeper方法,停止的时候调UnregistryBeeper。代码来自“静音达人”,可以去网络应用搜索下载,体验一下:)
-------------------------------------------
/**
* 执行切换情景模式的消息接收器
*
* @author ValentineNing
*
*/
public class TimerBasedActivator {
/**
* 注册定时器的组件
*/
private static AlarmManager s_AlarmMgr;
/**
* 发送给SmartProfileBeepReceiver的消息
*/
private static PendingIntent s_SmartProfileBeeperIntent;
/**
* 异步注册到定时任务
*
* @param context
* 执行注册的上下文
*/
public static void BeginRegistryBeeper(final Context context) {
Thread th = new Thread(new Runnable() {
public void run() {
RegistryBeeper(context);
}
});
th.start();
}
/**
* 注册定时任务
*
* @param context
* 执行注册的上下文
*/
public static void RegistryBeeper(Context context) {
ILog logger = new ExternalStorageLogger(context);
logger.Log("[TBA] 开始注册定时任务");
// 准备参数
s_AlarmMgr = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent intent2 = new Intent(context, TimerBoardcastReciever.class);
s_SmartProfileBeeperIntent = PendingIntent.getBroadcast(context, 0,
intent2, PendingIntent.FLAG_UPDATE_CURRENT);
// 添加前先尝试注销
s_AlarmMgr.cancel(s_SmartProfileBeeperIntent);
// 注册Beeper(延迟5秒后开始工作,然后每5分钟执行一次)
s_AlarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance()
.getTimeInMillis() + 5 * 1000, 1000 * 60 * 5,
s_SmartProfileBeeperIntent);
logger.Log("[TBA] 定时任务注册完成");
}
/**
* 取消定时任务
*
* @param context
* 执行注册的上下文
*/
public static void UnregistryBeeper(Context context){
if(s_AlarmMgr!=null){
ILog logger = new ExternalStorageLogger(context);
logger.Log("[TBA] 开始注销定时任务");
Intent intent2 = new Intent(context, TimerBoardcastReciever.class);
s_SmartProfileBeeperIntent = PendingIntent.getBroadcast(context, 0,
intent2, PendingIntent.FLAG_UPDATE_CURRENT);
// 注销定时任务
s_AlarmMgr.cancel(s_SmartProfileBeeperIntent);
logger.Log("[TBA] 定时任务注销完成");
}
}
/**
* 定时任务通知的接收器
*
* @author valentine
*
*/
public class TimerBoardcastReciever extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
ILog logger = new ExternalStorageLogger(arg0);
logger.Log("[TBR] 开始检查是否需要切换情景模式");
PhoneProfileSwitcher.Check(arg0);
logger.Log("[TBR] 情景模式切换完毕,准备更新任务栏图标");
MiscHelpers.RefreshNotifycation(arg0);
logger.Log("[TBR] 任务栏图标更新完毕");
}
}
}
④ android中多个按钮用一个监听器监听怎么写,求具体的代码,谢谢。
1、先申明一个监听对象
2、不同按钮设置同一个监听对象
3、监听中,通过按钮的id判断是哪个按钮的点击事件
代码如下
1、new监听
OnClickListener clickListener = new OnClickListener(){
@Override
public void onClick(View v) {
if (v.getId()==R.id.button1){//按钮1
}else if(v.getId()==R.id.button2}{//按钮2
}
}
2、设置监听
Button btn1 = (Button)findViewById(R.id.button1);
Button btn2 = (Button)findViewById(R.id.button1);
btn1.setOnClickListener(clickListener);
btn2.setOnClickListener(clickListener);
⑤ android onclick是怎样实现的
Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
TextView textview = (TextView)findViewById(R.id.textView1);
textview.setText("Button");
}
});
这种方式用findviewbyid通过id实例化出来这个button,然后通过设置button的listener监听对象,并同时实现接口OnClickListenter的OnClick()方法。这种方式的代码量不多,但是在java中,面向对象的思想,关于耦合,模块化它达不到。代码堆叠在一起,比较臃肿。
⑥ 如何在android studio里设置点击监听事件
Androidstudio 添加点击监听事件有三种方法:
一.匿名内部类
1.先找到那个控件(初始化)
private Button bt1; //onCreate方法外
bt1 = (Button)findViewById(R.id.button1);
2.设置事件监听器
bt1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
System.out.println("我的按钮被点击了");
}
});
(6)android监听器扩展阅读:
如果按钮绑了监听器
按钮点击是通过OnClickListener来实现的
大致的流程应该是这样的
public class MainActivity extends Activity
{
private Button loginButton;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建监听器对象
loginButton = (Button) findViewById(R.id.login_btn);
OnClickListener listener = new ButtonClickListener();
loginButton.setOnClickListener(listener);
}
/**
* 监听器类
*/
class ButtonClickListener implements OnClickListener
{
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.login_btn:
//点击后的逻辑处理
break;
}
}
}
⑦ Android中的FileObserver
android.os包下面的FileObserver是一个用于监听文件访问创建修改删除移动等操作的监听器,基于Linux的INotfy
FileObserver是个抽象类,必须要继承它才能使用,每个 FileObserver 监听一个单独的文件或者文件夹,如果监听的是一个文件夹,那么文件夹下所有文件或者级联子目录的改变都会触发监听事件。
FileObserver对象必须保持一个引用,确保不被垃圾回收器回收掉,否则就不会触发事件,这里可以考虑使用Service服务。
⑧ android中,写监听器时老是出现以下情况,如何解决
不用myButton.setOnClickListener(new MyButtonListener),直接在里面写内容
myButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
……
}
});
⑨ android 数据库怎么监听数据变化
在android中经常会用到改变数据库内容后再去使用数据库更新的内容,很多人会重新去query一遍,但是这样的问题就是程序会特别占内存,而且有可能会搂关cursor而导致程序内存未释放等等。其实android内部提供了一种ContentObserver的东西来监听数据库内容的变化。
ContentObserver的构造函数需要一个参数Hanlder,因为ContentObserver内部使用了一个实现Runnable接口的内部类NotificationRunnable,来实现数据库内容的变化。需要使用hanlder去post消息。注册ContentObserver的方法是:getContentResolver().registerContentObserver(uri, notifyForDescendents, observer).
上面3个参数为:uri----Uri类型,是需要监听的数据库的uri.
notifyForDescendents---boolean true的话就会监听所有与此uri相关的uri。false的话则是直接特殊的uri才会监听。一般都设置为true.
observer-----ContentObserver 就是需要的contentobserver.
初始化一个ContentObserver对象,重载onChange(boolean ),在这个方法里去操作数据库的使用,针对变化后的使用。
⑩ Android 复选框 怎么设事件监听器
android没有复选对话框吧,组合起来就还是和多选框一样了,多选框的监听和单选框一样,也是setOnCheckchangeListener(引入包的时候注意别引成RadioButton的),你吧这个选择的状态保存起来,然后点确定的时候根据这个状态来处理就好了。