2013-10-12 70 views
1

在主活動我發送字符串[]名稱這樣的:傳遞字符串[]從一個活動到另一個

private void sendNames() { 

    Bundle b=new Bundle(); 
    b.putStringArray("key", names); 
    Intent i=new Intent(this, ListFriendsFragment.class); 
    i.putExtras(b); 

} 

當我發送名稱它不是空的100%,並且把這個代碼中的方法,並在我得到名字後調用它。

在活動,我想收到的String []我得到這樣的:

names = this.getIntent().getExtras().getStringArray("key"); 

在這兩種,主要活動和一個我希望接收的字符串,names聲明如下:

private String[] names; 

當我開始應該得到names應用程序崩潰的活動:

Caused by: java.lang.NullPointerException 
at com.utm.course.friendslist.ListFriendsFragment.PrintNames(ListFriendsFragment.java:26) 
at com.utm.course.friendslist.ListFriendsFragment.onCreate(ListFriendsFragment.java:20) 

我做錯了什麼?


更新

這些都是在這裏我使用Intent

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (currentSession != null) { 
     currentSession.onActivityResult(this, requestCode, resultCode, data); 
    } 
} 
... 
private void sendNames() { 
    Log.d("sendNames", "started"); 
    Bundle b=new Bundle(); 
    b.putStringArray(key, names); 
    Intent i=new Intent(this, ListFriendsFragment.class); 
    i.putExtras(b); 
} 
... 
private void listFriends() { 
    Log.d("Activity", "List Friends Activity Starting"); 
    Intent i=new Intent(MainActivity.this,ListFriendsFragment.class); 
    startActivity(i); 
    finish(); 
} 
+0

http://stackoverflow.com/questions/9343241/passing-data-between -a-fragment-and-its-container-activity –

回答

3

它看起來像sendNames()不會返回您創建的意圖部分,你可能稱之爲startActivity(i);其他地方,其中的意圖你這裏創建的不再是範圍。

將簽名sendNames()更改爲返回您創建的意圖,並在開始活動時使用該意圖。

如果您將使用調試器運行,請在啓動該活動的位置添加一個斷點,並確保您傳遞的意圖是使用「鍵」字符串數組包含該包。

+0

我在我的項目中搜索了「Intent」。請檢查問題中的更新,因爲這裏很難理解。 – FilipLuch

+1

1.你的代碼不顯示最後兩個方法從哪裏調用。 2.就像我寫的那樣,在'sendNames()'中創建的'intent'在sendNames()完成執行的那一刻就被銷燬了。 – alfasin

+1

你是對的。我把sendNames和listFriends放在一起,當我開始活動時,我發送了意圖。謝謝。 – FilipLuch

0

就這樣做:

Assumption,String [] names;

Intent intent = new Intent(this, ListFriendsFragment.class); 
intent.putExtra("key", names); 
startActivity(intent); 

在接下來的活動中,

Intent intent = getIntent(); 
String[] names = intent.getStringArrayExtra("key"); 
+0

該應用程序崩潰:'無法啓動活動...空指針異常' – FilipLuch

0

發送

Bundle b=new Bundle(); 
b.putStringArray(key, new String[]{value1, value2}); 
Intent i=new Intent(context, Class); 
i.putExtras(b); 

接收

Bundle b=this.getIntent().getExtras(); 
String[] array=b.getStringArray(key); 
+0

發送部分沒有任何錯誤沒問題。FriendsListFragment不是一個片段,它的活動。 仍然在FriendsListActivity上收到NullPointerException – FilipLuch

相關問題