在安卓系统中处理事件的最佳方式 [已关闭]
我知道这似乎是一个重复的问题,但我真的无法找到相关主题的好答案。
关于处理 .
以下是我遇到的一些选项:OnClick
Button
1 - 在方法上以编程方式定义侦听器:OnCreate
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//do stuff
}
});
2 - 在 XML 上设置属性:android:OnClick
<Button android:id="@+id/btnDelete"
...
android:OnClick="btnDelete_OnClick"/>
3 - 在类上实现接口并将自引用传递给 Button:OnClickListener
Activity
public class MainActivity extends Activity implements OnClickListener{
@Override
public void onClick(View v) {
//do stuff
}
protected void onCreate(Bundle savedInstanceState) {
...
button.setOnClickListener(this);
}
}
4 - 创建类型为以下内容的字段:OnClickListener
private OnClickListener onClickHandler = new OnClickListener(){
@Override
public void onClick(View v) {
//stuff
}
};
protected void onCreate(Bundle savedInstanceState) {
...
button.setOnClickListener(onClickHandler);
}
当涉及到 a 和事件时,我总是更喜欢在 XML 上定义它,它只是更干净。Button
OnClick
但是其他事件呢,例如来自或来自?我看不到用于在 XML 上设置它的属性。我认为实现监听器接口是一个非常干净的解决方案,但这意味着我只能实现一次,如果我有两个相等的视图,我必须在同一位置处理它们的事件。如果我使用选项 2 或 4,则在处理来自 UI 中不同视图的多个事件时,它可能会变得非常混乱。OnItemClick
ListView
OnTimeSet
TimePickerDialog
如果事件处理有任何其他实现选项,我希望看到有关此主题的其他意见。是否真的有一种替代方案可以被定义为更好的替代方案,或者它只是每个程序员的个人问题?