我使用以下方法。我在每個活動或片段中都有一個常見的EventHandler子類,並將屬於活動的單個實例添加到每個UI項目。 EventHandler實現了OnClickListener,OnChanged ..等等。
我也建議在看這個庫,如果你熟悉DI概念:
https://github.com/roboguice/roboguice/
這裏是我的代碼示例:
package com.x.y;
public class DashboardActivity extends FragmentActivity {
private EventHandler eventHandler = new EventHandler();
@SomeAnnotationForInit(R.id.some_id)
private Button feedButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dashboard_activity);
initGui();
}
private void initGui() {
feedButton.setOnClickListener(eventHandler);
}
private class EventHandler implements View.OnClickListener {
@Override
public void onClick(View view) {
if(view.equals(...)) {
//TODO:
}
}
}
}