代碼重用的活動令人困惑。在正常情況下,我們可以設計一個家長活動,並將所有常見方法放入其中。如下:如何爲android活動執行代碼重用?
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將顯示一個alertdialog而不是立即退出按鈕時退出。 但是在android框架中,有不止一個內置活動,比如PreferenceActivity,ListActivity,ActivityGroup等。
如果我的活動擴展這些活動的話,就不能使用Java中的BaseActivity.because的單繼承定義的公共代碼。 那麼有沒有其他的方式推薦在android中執行代碼重用?
ActivityHelper將是你可以在這裏找到一個詳細的例子一個很好的解決方案:http://iosched.googlecode.com/hg/android/src/com/google/android/apps/iosched/util/ActivityHelper.java 檢查整個項目,查看鏈接http://code.google.com/p/iosched/ – 2012-02-11 21:05:58
+1的流程,並且ActivityHelper是一個不錯的解決方案。 – DouO 2012-02-12 06:16:14