2012-03-26 4 views
0

Ich möchte eine string[][] von sendBroadcast erhalten, aber fehlgeschlagen. erste, habe ich eine sendBroadcast up:Wie bekomme ich string [] [] von sendBroadcast

 Intent intent = new Intent("json_info"); 
     intent.putExtra("routeshout", result); 
     sendBroadcast(intent); 

, in der Folge eine string[][]

ist und dort:

  @Override 
     public void onReceive(Context context, Intent intent) { 
      // TODO Auto-generated method stub 
      String[][] str_result = intent.getStringArrayExtra("routeshout"); 
      result.setText(str_result[0]); 
      Log.d(TAG,"onReceive: "+str_result[1]); 
     } 

    }; 

aber ich kann string[][] erhalten, indem String[][] str_result = intent.getStringArrayExtra("routeshout");

jeder Vorschlag Anwendung ???

Antwort

0

Sie könnten versuchen, die folgende ..

Bundle extras = intent.getExtras(); 
String[][] str_result = (String[][])extras.get("routeshout"); 

Ich sollte anmerken, dass ich nicht sicher bin, ob es möglich ist, ein verzweigtes Array durch das Bündel passieren, aber da es nur Strings speichert, stelle ich mir es funktionieren sollte .

+0

es funktioniert gut für "Bundle Extras = intent.getExtras();" aber wenn "String [] [] str_result = (String [] []) extras.get (" routeshout ");" Ich habe abgeschaltet und "03-26 04: 53: 04.490: E/AndroidRuntime (4460): Fatale Ausnahme: Haupt " – Hao

+0

@ Hao Nun, das ist der Fall, mit dem ich sprach; Wenn Sie möchten, dass ein komplexer Typ durch Ihr Bundle geleitet wird, muss er Serializable oder Parcelable je nach erforderlicher Effizienz und Kontrolle erweitern. Die Plattform hat diese Funktionalität für Sie auf bestimmten einfachen Typen (String-Arrays, Werttypen, etc.) zur Verfügung gestellt –

0

Sie können nur eine Klasse erstellen, die Serializable und Getter Setter für Ihre String[][] verwenden Sie dann den Getter Setter zu setzen und übergeben Sie es zur nächsten Absicht erweitert putExtra mit und abrufen intent.getSerializableExtra() verwenden. Here ist ein Beispiel für das gleiche, nur anstelle von Liste verwenden Sie Ihre String[][].

+0

funktioniert !!! Danke !! – Hao

+0

@Hao: Wenn das Ihnen geholfen hat, überlegen Sie sich bitte * es zu * upvoting * und * akzeptieren * diese Antwort (indem Sie es ankreuzen). –