Ich versuche, eine Absicht mit einer Zeichenfolge extra von ChooseActivity zu MainActivity zurück zu propagieren. Rufen Sie in MainActivity onActivityResult auf, um die Zeichenfolge abzurufen, erhalten Sie jedoch eine Null. Warum kann es die Schnur nicht bekommen?onActivityResult() erhält keine Absicht zurück von setResult()
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE_CHOOSE = 1;
private Button mButtonStart;
private Button mButtonGuess;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonStart = (Button)findViewById(R.id.button_start);
mButtonStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ChooseActivity.class);
**startActivityForResult**(intent, REQUEST_CODE_CHOOSE);
}
});
mButtonGuess = (Button)findViewById(R.id.button_guess);
mButtonGuess.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mButtonGuess.setText(buttonName);
}
});
}
private String buttonName;
@Override
protected void **onActivityResult**(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
buttonName = ChooseActivity.getExtraChoose(data);
}
}
die ChooseActivity Klasse:
public class ChooseActivity extends AppCompatActivity {
private static final String EXTRA_CHOOSE = "com.robyn.guessapp.choose";
private Button mButtonA;
private Button mButtonBack;
private String mButtonName;
public static String getExtraChoose(Intent data) {
return data.getStringExtra(EXTRA_CHOOSE);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose);
mButtonA = (Button)findViewById(R.id.button_a);
mButtonA.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mButtonName = mButtonA.getText().toString();
setChooseResult(mButtonName);
}
});
mButtonBack = (Button)findViewById(R.id.button_back);
mButtonBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ChooseActivity.this, MainActivity.class);
startActivity(intent);
}
});
}
private void setChooseResult(String buttonName) {
Intent data = new Intent();
data.putExtra(EXTRA_CHOOSE, buttonName);
**setResult**(**RESULT_OK**, data);
}
}