2016-04-26 7 views
0

Ich habe eine Klasse.Android, Intents: Ein Bündel an SecondActivity übergeben

public class MainActivity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Intent newintent = new Intent(getApplicationContext(),Main2Activity.class); 
    newintent.putExtra("SOME_Data", "Perfect_Data"); 
    startActivity(newintent); 
    finish(); 
} 
} 

Ich möchte einige Daten in einer anderen Klasse abrufen.

public class Main2Activity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 

    Intent i = this.getIntent(); 
    Bundle s = getIntent().getExtras(); 

} 
} 

Aber wenn ich diesen Code zu starten, bundle, mit String "Perfect_Data" - ich diesen: Bundle [mParcelledData.dataSize = 68]. Was ist los? Kannst du mir helfen?

Antwort

0

Wenn Sie den Inhalt von Bundle drucken möchten, verwenden Sie diese:

for (String key : bundle.keySet()) { 
    Object value = bundle.get(key); 
    Log.d(TAG, String.format("%s %s (%s)", key, 
     value.toString(), value.getClass().getName())); 
} 

Ansonsten nur verwendet es die Standard toString() der Object-Klasse, was du hast.

0

Das Bundle wird mit der Standardfunktion toString gedruckt.

Wenn Sie nur die Zeichenfolge erhalten möchten, ändern Sie diese an:

Intent i = this.getIntent(); 
String data = i.getStringExtra("SOME_Data"); 
Verwandte Themen