Ich habe zwei Aktivitäten Hauptaktivität und Aktivität zwei, grundsätzlich versuche ich einen Text von Aktivität zwei an Hauptaktivität zu übergeben, wenn ich auf die Schaltfläche in Hauptaktivität aber immer abrufen null
jede Hilfe, warum es die Nachricht nicht zurückschickenWeitergabe von Daten aus einer untergeordneten Aktivität zur Hauptaktivität
der Hauptaktivitätscode ist:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button two = (Button) findViewById(R.id.button);
Recieve =(TextView) findViewById(R.id.textView2);
two.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendMessage();
}
});
}
public void sendMessage() {
Intent intent = new Intent(this, Activity2.class);
startActivityForResult(intent, REQUEST_CODE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String requiredValue = data.getStringExtra("Key");
Recieve.setText(requiredValue);
}
}
Und das ist Activity2 Code:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
send();
}
public void send(){
String message ="hello";
Intent intent = new Intent();
intent.putExtra("key", message);
setResult(RESULT_OK, intent);
finish();
}
}
Die statische abschließende Zeichenfolge, die als Schlüssel verwendet wird, muss öffentlich sein, damit sie in mehreren Klassen (Aktivitäten) verwendet werden kann. Ich würde auch hinzufügen, dass es besser ist, es in der Aktivität zu setzen, die die Daten empfängt (hier MainActivity), damit andere Aktivitäten es konsistent verwenden können, ohne dass eine Drittparteiaktivität geladen werden muss, um die Antwort zu geben. – Feuby
@Feuby: "muss öffentlich sein, um in mehreren Klassen verwendet zu werden" - nur wenn sie verschiedene Java-Pakete sind. Andernfalls ist das Paket privat ausreichend. – CommonsWare
ja .it hat für mich geklappt Danke @CommonsWare –