2012-09-03 89 views
0

我將2d數組[] []對象作爲一個意圖額外傳遞給另一個活動,但它的顯示錯誤我不能確定我該怎麼做?如何通過一個2維數組作爲一個意圖額外的android

 Bundle bundle = intent.getExtras();   
    SmsMessage[] msgs = null; 
    String str = ""; 
     if (bundle != null) 
    { 
     //---retrieve the SMS message received--- 
     Object[] pdus = (Object[]) bundle.get("pdus"); 
     msgs = new SmsMessage[pdus.length];    
     for (int i=0; i<msgs.length; i++){ 
      msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);     
      str += "SMS from " + msgs[i].getOriginatingAddress();      
      str += " :"; 
      str += msgs[i].getMessageBody().toString(); 
      str += "\n"; 

String[][] xmlResponse2= null; 
     String[] test = str.split("\n"); 
     xmlResponse2= new String[0][test.length]; 
     for (int i = 0; i < test.length; i++) { 
      xmlResponse2[0][i]=test[i]; 

     } 

    Intent l = new Intent(context,AgAppMenu.class); 
     l.putExtra("msg",xmlResponse2[0][i]); 
     l.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(l); 
+0

l.putExtra( 「msg」 中,xmlResponse2 [0] [1]); 這條線顯示一個錯誤 –

+0

它超出了我的範圍你不能使用我有 –

+0

然後我怎麼通過 xmlResponse2 [0] [i]值作爲參數到另一個活動? –

回答

-1

Intent.putExtra不接受2維陣列按照以下文獻 http://developer.android.com/reference/android/content/Intent.html

我有檢查Intent.putExtra的源代碼,它使用捆綁類來存儲數據

http://developer.android.com/reference/android/os/Bundle.html

這裏是Intent.java

    源代碼
  1. Intent.java http://gitorious.org/android-eeepc/base/blobs/fda6fae156e31a287e3cfbf66e51ea1405cdf479/core/java/android/content/Intent.java
  2. Bundle.java https://github.com/android/platform_frameworks_base/blob/master/core/java/android/os/Bundle.java

Bundle.java使用 「HashMap的」 存儲內容,

我所知,這是不可能直接

可以使用putParcelable方法,你需要創建你自己的class instanceof 2維數組。

一個快速的解決方案

String[] keys = createKeys(); 
String[] values = createValues(); 

(keys.length == values.length) 

bundle.putExtra("keys", keys); 
bundle.putExtra("values", values); 
+1

你可以得到/放置Serializable對象。請參閱http://stackoverflow.com/questions/12214847/pass-2d-array-to-another-activity – fadden

+0

是的,但可序列化是非常昂貴的,檢查這兩篇文章的性能評估 - http://www.developerphil.com/parcelable-VS-序列化/ –

相關問題