Activity 的代码重用令人困惑。一般情况下我们可以设计一个父Activity,把所有常用的方法放在里面。就像下面这样:
public class BaseActivity extends Activity{
@Override
protected void doExit() {
showDialog(DIALOG_EXIT_ALTER);
}
protected Dialog onCreateDialog(int id, Bundle args) {
switch (id) {
case DIALOG_EXIT_ALTER:
return new AlertDialog.Builder(BaseUIActivity.this)
.setTitle("Exit?")
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialoginterface, int i) {
close();
}
})
.setNeutralButton("No",null).create();
default:
return null;
}
}
protected void close() {
finish();
}
}
然后其他扩展 BaseActivity 的 Activity 将显示一个警报对话框,而不是在按下后退按钮时立即退出。 但在android框架中,内置的activity不止一个,比如PreferenceActivity、ListActivity、ActivityGroup等。
如果我的 Activity 扩展了这些 Activity ,那么它就不能使用 BaseActivity 中定义的公共(public)代码。因为 Java 的单一继承。 那么还有其他方法推荐对 Android 中的 Activity 进行代码重用吗?
最佳答案
创建一个新类 ActivityHelper。
public class ActivityHelper { Activity activity; public ActivityHelper(Activity activity) { this.activity = activity; } public Dialog onCreateDialog(int id, Bundle args) { // do many usefull things return result; } }
在您的所有 Activity 中使用它。
protected Dialog onCreateDialog(int id, Bundle args) { return activityHelper(id, args); }
关于java - 如何实现android Activity的代码复用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9240265/