要啟動一個 Activity,我們以前是這樣寫
Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("key1","val1");
it.putExtra("key2","val2");
startActivity(it);Code language: JavaScript (javascript)
大家有沒有想過,並不是每個 Activity 都是你負責開發的
這時候,如果我想啟動另一個 Activity,可能就得詢問負責該 Activity 的同事或是查閱文件。
可是這樣是不是很麻煩?
有什麼解決辦法嗎?
能不能把啟動 Activity 的工作交給另一位同事處理?
也就是每個 Activity 的開發者,在該 Activity 裡新增一個方法,讓其他人呼叫這個方法來開啟 Activity。
Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("site","www.foxdevelop.com");//在我們自己的 Activity 裡啟動其他 Activity
//我們需要知道其他 Activity 需要什麼資料,所以得跟該 Activity 的開發人員溝通
startActivity(it);Code language: JavaScript (javascript)
接下來我們試試看,在目標 Activity 新增一個靜態方法
//將啟動 Activity 的程式碼寫在該 Activity 的類別內
public static void actionStart(Context context, String site, int level)
{
Intent it = new Intent(context,NormalActivity.class);
it.putExtra("site",site);
it.putExtra("level",level);
context.startActivity(it);
}Code language: JavaScript (javascript)
NormalActivity.actionStart(MainActivity.this,"www.foxdevelop.com",12);Code language: CSS (css)
啟動 Activity 的更佳寫法