Y我也面臨這個問題。
許多開發人員在通過Intent或Bundle將對話數據傳遞給另一個活動時也面臨問題。它在檢索時從另一個活動返回null。
唯一的解決方案是SharedPreferences。
但你必須把它駁回按鈕內部(例如:確定/取消等)
,輕鬆地通過相同的密鑰從另一活動的數據。請勿使用任何服務,然後使用廣播意圖。
在對話活動的代碼是這樣的:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.mailicon);
builder.setTitle(name);
builder.setView(view);
builder.setPositiveButton("Send Request",new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
String mailID = id.getText().toString();
//Here define all your sharedpreferences code with key and value
SharedPreferences prefs = getSharedPreferences("my_prefs", MODE_PRIVATE);
SharedPreferences.Editor edit = prefs.edit();
edit.putString("MID", mailID);
edit.commit();
}
});
而且從另一個獲取數據是這樣的:
SharedPreferences bb = getSharedPreferences("my_prefs", 0);
String m = bb.getString("NUM", "");
Toast.makeText(this, m, Toast.LENGTH_SHORT).show();
添加一些checkings一個很好的標準。
謝謝
然後爲了什麼你想發送數據?它對我沒有任何意義。 – Sajmon 2013-03-17 21:56:03
@sajmon我發送這些數據以顯示在另一個活動中,但不想通過此活動打開它,現在對您有意義嗎? – scripter 2013-03-17 22:00:58
現在是對不起>>你現在可以將值保存到SharedPreferences中,然後隨時檢索它們。 – Sajmon 2013-03-17 22:01:58