2015-05-12 99 views
-4

你能告訴我putExtra()的工作原理嗎?它如何以及在哪裏存儲傳遞給它的數據?我仍然困惑它裏面的數據是如何工作的以及它是如何從一個活動傳遞給其他活動的?它的結構是如何組織的?或者存儲在Intent類內部的值?putExtra()如何工作?

試想有A級 它有一個static string Example。我想填補這個字符串中下一個活動,所以我打電話activityforresult()

現在有類B.I填充文本框與ID text_entered。我把代碼

Intent text = new Intent(); 
test.putExtra(A.Example, text_entered); 

現在將在哪裏將文本保存在A示例或意圖測試?

+1

可能的重複[如何使用putExtra()和getExtra()字符串數據](http://stackoverflow.com/questions/5265913/how-to-use-putextra-and-getextra-for-string-數據) –

+1

你必須看到android的源代碼,然後 –

+0

在發佈堆棧溢出問題之前,先做谷歌 – Madhu

回答

1

Activity1.class

Intent intent = new Intent(getApplicationContext(), Activity2.class); 
    intent.putExtra("EXTRA_NAME", 4);//Int 
    intent.putExtra("EXTRA_NAME", "String_Values");//String 

Activity2.class

String stringValue = getIntent().getStringExtra("EXTRA_NAME");//String extra 
    int iValue = getIntent().getIntExtra("EXTRA_NAME", 0);//defaultValue = 0 
0

您的文字將與意圖一起在他的回答被@NamHoang所述進行其他活動。你的案例中的A.Example(應該是一個字符串)只是一個用於引用意圖中存在的值的鍵。 我希望你知道,它是與意圖一起發送的鍵值對。

0

的A.class

static String Example = "this is a example string"; 

private void JumpToB(){ 
    Intent intent = new Intent(); 
    intent.putExtra("key_data", Example); 
    intent.setClass(this,B.class); 
    startActivity(intent); 
} 

B.class

protected void onCreate(Bundle savedInstanceState) { 
    String example = getIntent().getStringExtra("key_data"); 
    text_entered.setText(example); 
} 

如果你想傳遞一個型號,一個好辦法是將模型轉換成JSON。