最近开始学习android开发
遇到这么一个情况,我想要对一个activity多个按钮绑定onclik监听,但是如果每个都要单独写一个监听方法的话,太麻烦了。在网上查了一下,发现可以对多个button绑定同一个onclick监听方法,通过getID()方法来判断点击的按钮
createDB = (Button) findViewById(R.id.createDB);
updateDB = (Button) findViewById(R.id.updateDB);
insert = (Button) findViewById(R.id.insert);
delete = (Button) findViewById(R.id.delete);
update = (Button) findViewById(R.id.update);
select = (Button) findViewById(R.id.select);
createDB.setOnClickListener(new DBListener());
updateDB.setOnClickListener(new DBListener());
insert.setOnClickListener(new DBListener());
delete.setOnClickListener(new DBListener());
update.setOnClickListener(new DBListener());
select.setOnClickListener(new DBListener());
OnclickListener中的代码:
class DBListener implements OnClickListener{
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch(arg0.getId()){
case R.id.createDB:
Log.i("Test", "CreateDB");
break;
case R.id.updateDB:
Log.i("Test", "updateDB");
break;
case R.id.insert:
Log.i("Test", "insert");
break;
case R.id.update:
Log.i("Test", "update");
break;
case R.id.delete:
Log.i("Test", "delete");
break;
case R.id.select:
Log.i("Test", "select");
break;
}
}
}
View的getId()方法会返回一个int型的数字,这个数字与通过R.id.viewId获得的数字是对应的,所以可以通过这两个数字关联确定点击的按钮。
当然在使用这个方法的前提是对应的view有id的值,我们看到getId()这个方法的说明:
这个方法的返回值是一个正数,用于标识view,但是如果一个view没有ID的话,该方法会返回NO_ID
为view绑定id的方法:
可以在布局的XML中使用android:id的属性
也可以在activity中使用setId()的方法