如果您有很多活動,這是一個常見問題。我解決它通過使用單導航類是這樣的:在每一個活動
public class Navigator {
private static Navigator instance;
private Navigator() {
}
public static Navigator getInstance() {
if (instance == null) {
synchronized (Navigator.class) {
if (instance == null) {
instance = new Navigator();
}
}
}
return instance;
}
public void navigateToSubActivity(Context context, String data) {
Intent subAct = SubActivity.getCallingIntent(context);
// This is the data where you want to send to target activity.
subAct.putExtra("DATA", data);
context.startActivity(subAct);
}
}
就應該添加靜態方法一樣(這裏SubActivity
類爲例):
/**
* Returns the intent for this activity
*
* @param context {@link Context}
* @return {@link Intent}
*/
public static Intent getCallingIntent(Context context) {
return new Intent(context, SubActivity.class);
}
最後,可以愉快地導航到另一個活動使用:
Navigator.getInstance().navigateToSubActivity(this, "my data");
請記住,當你想捕獲捆綁數據p reviously發送,則需要在收件人活動onCreate()
添加以下代碼:
Bundle extras = getIntent().getExtras();
mData = extras.getString("DATA");
// process the data after we receive it.
注:
如果我沒有記錯,我想這是一個輕微的修改,我從做Navigator class from雖然沒有injection
。
**總結你的意圖的代碼在一個函數**然後調用功能,您需要重新創建意圖代碼 – Anish
有時我需要在活動之間傳輸一些數據。 –
您可以將數據傳遞給數組或作爲字符串傳遞給函數的參數 – Anish