分模塊開發完美銜接小知識

當我們在開發的時候,啓動活動的方法相信我們已經非常熟悉了,

首先通過 Intent構建出當前的“意圖”,然後 調用 startActivity()或 startActivityForResult()方法將活動啓動起來,

如果有數據需要從一個活 動傳遞到另一個活動,也可以藉助 Intent來完成。

 假設 SecondActivity中需要用到兩個非常重要的字符串參數,在啓動 SecondActivity的 時候必須要傳遞過來,那麼我們很容易會寫出如下代碼:

 Intent intent = new Intent(FirstActivity.this, SecondActivity.class);

 intent.putExtra("param1", "data1"); 

intent.putExtra("param2", "data2"); 

startActivity(intent); 

這樣寫是完全正確的,不管是從語法上還是規範上,只是在真正的項目開發中經常會有 對接的問題出現。

比如 SecondActivity並不是由你開發的,但現在你負責的部分需要有啓動SecondActivity這個功能,

而你卻不清楚啓動這個活動需要傳遞哪些數據。

這時無非就有兩 種辦法,一個是你自己去閱讀 SecondActivity 中的代碼,

二是詢問負責編寫 SecondActivity 的同事。

這樣會非常麻煩。

其實只需要換一種寫法,就可以輕鬆解決掉上面的窘境。 

修改 SecondActivity中的代碼,如下所示:

 public class SecondActivity extends BaseActivity { 

public static void actionStart(Context context, String data1, String data2) { 

Intent intent = new Intent(context, SecondActivity.class); 

intent.putExtra("param1", data1); 

intent.putExtra("param2", data2); 

context.startActivity(intent); 

}

 } 

們在 SecondActivity中添加了一個 actionStart()方法,在這個方法中完成了 Intent的構 建,另外所有 SecondActivity中需要的數據都是通過 actionStart()方法的參數傳遞過來的,

然 後把它們存儲到 Intent中,最後調用 startActivity()方法啓動 SecondActivity。 

這樣寫的好處在哪裏呢?

最重要的一點就是一目瞭然,SecondActivity所需要的數據全 部都在方法參數中體現出來了,

這樣即使不用閱讀 SecondActivity中的代碼,或者詢問負責 編寫 SecondActivity的同事,你也可以非常清晰地知道啓動 SecondActivity需要傳遞哪些數 據。

另外,這樣寫還簡化了啓動活動的代碼,現在只需要一行代碼就可以啓動 SecondActivity, 如下所示: button1.setOnClickListener(new OnClickListener() { 

@Override 

public void onClick(View v) {

  SecondActivity.actionStart(FirstActivity.this, "data1", "data2"); 

}); 

這樣,你編寫的每個活動都添加類似的啓動方法,這樣不僅可以讓啓動活動變得非常簡單,還可以節省不少你同事過來詢問你的時間。

日常小筆記

發佈了25 篇原創文章 · 獲贊 13 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章