In Java, How do I simplify my code using inheritance? (Android Dev.)
在各种活动中,我有非常相似的方法。
例如:
1 2 3 4 5 6 7 8 9 10 |
和
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @Override public void onClick(View v) { /** */ // switch(v.getId()){ case R.id.bNew: Intent newSwimmerIntent = new Intent(v.getContext(),NewSwimmer.class); startActivity(newSwimmerIntent); break; case R.id.ibHome: Intent menuIntent = new Intent(v.getContext(),Menu.class); startActivity(menuIntent); break; |
是否有一种方法(我假设是使用继承)来防止在每个类中显式地声明menuintant?
谢谢。
您可以使用继承,但实际上这可能不是最佳选择,特别是如果这两个活动在"is-a"关系中没有直接关联。
在这种情况下,最好声明一个实现onclickListener接口的新类。然后,您可以实例化该类并将其绑定到按钮的Click事件(无论它们在何处使用)。
下面是一个例子:
1 2 3 4 5 6 7 8 9 10 |
在您的活动中,您可以将homeButtonHandler绑定到按钮的onclickListner:
1 | homeButton.setOnClickListener(new HomeButtonHandler()); |
为所有活动创建一个通用的
通过这种方式,您将有一个针对所有活动的开关。