2013-02-22 101 views
1

在我的應用程序中,我需要在Intent方法的幫助下,將Activity上的二維數組和另外兩個整數值形式發送給另一個。 這是爲完成..我無法從我的應用程序中獲取數據包

 Intent i = new Intent(getApplicationContext(), ViewActivity.class); 
      Bundle postbundle = new Bundle(); 
      String[][] X={{"abc"},{"def"}}; 
      postbundle.putSerializable("data", X); 
      i.putExtra("A", postbundle); 

      i.putExtra("albumid", position); 
      i.putExtra("Bigcard",bigcard); 

這裏是使用.putSerializable方法將一個陣列的線束。

所以訪問接收機活動,這些數據現在用

 Bundle bundle = getIntent().getBundleExtra("A");  
    String[][] ABC=(String[][]) bundle.getSerializable("data"); 
    Log.e("Array is",""+ABC); 

但我得到java.lang.NullPointerException錯誤消息..

蒙山停止使用「靜態」聲明我怎樣才能得到這些值從捆綁在這裏(在接收器活動..)

讓我出來請從這裏..

+0

我不是很確定,因爲我沒有測試環境,但是您可以嘗試'getBundleExtra(String name)'在第二個活動中獲取該包。然後使用適當的方法獲取數組。 – 2013-02-22 11:41:02

回答

1

第1步:寫一個單獨的bean類,並保存到另一個文件

public class MyBean implements Serializable{ 
String[][] data = null; 
public void set2DArray(String[][] data){ 
    this.data = data; 
} 
public String[][] get2DArray(){ 
    return data; 
} 
} 

步進2:在呼叫活動

 Intent intent = new Intent(this, Second.class); 

    String data[][] = new String[][] {{"1","kumar"},{"2","sona"},{"3","kora"},{"1","pavan"},{"2","kumar"},{"3","kora333"}}; 
    MyBean bean = new MyBean(); 
    bean.set2DArray(data); 
    Bundle b = new Bundle(); 
    b.putSerializable("mybean", bean); 
    intent.putExtra("obj", b); 
    startActivity(intent); 

步驟-3:在呼叫者活性

 Bundle b = getIntent().getBundleExtra("obj"); 
     MyBean dData = (MyBean) b.getSerializable("mybean"); 
     String[][] str =dData.get2DArray(); 
0

不是一個真正的答案,但一試:

如果嘗試會發生什麼:

Intent intent = getIntent(); 
    int a = intent.getIntExtra("albumid"); //if Your value is an int, otherwise use String 
              //getStringExtra or whatever Your value is 
+0

它的好處,但在這裏我的要求是「訪問二維數組......即數據」 – 2013-02-23 04:34:58

相關問題