我是 Android 的新手,如果我能在一个类中保留多个 OnClickListenres,它会大大改进我的应用程序。我在想的是这样的:
Public class OnClickListeners {
public Button.OnClickListener open;
public Button.OnClickListener doSomethingElse;
public Button.OnClickListener etc;
public OnClickListeners() {
open = new Button.OnClickListener()
{
public void onClick(View view)
{
DetailList.SetId(view.getId());
Intent intent = new Intent(view.getContext(), DetailList.class);
startActivityForResult(intent, 100);
}
};
}
}
所以我可以像这样在其他类 B 中引用它
button1.setOnClickListener(OnClickListeners.open);
有什么办法吗? Android SDK 似乎对我不利,因为我现在可以弄清楚大约 2 天了......
感谢您的建议和帮助
最佳答案
有一种巧妙的方法可以将所有匿名类合并为一个并打开 View 。如果您提前知道哪些按钮将使用点击监听器,则此方法效果最佳:
public class AndroidTestClickListenerActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new MyClickListener());
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new MyClickListener());
Button button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new MyClickListener());
}
}
class MyClickListener implements View.OnClickListener {
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.button1:
// do soemthign for button1
break;
case R.id.button2:
// do something for button2
break;
case R.id.button3:
// do something for button3
break;
default:
// do something for any other button
}
}
}
关于android - 在一个类中保留多个 OnClickListeners,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529200/