java - onActivityResult 返回 null

标签 java android

Activity 1:

公共(public)类 MainActivity 扩展 AppCompatActivity {

private EditText editOrt;
private EditText editPLZ;
private EditText editStrasse;
final int REQUEST_CODE = 111;
String adressdaten = "";
TextView abrufenn;

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

    editOrt = findViewById(R.id.editOrt);
    editPLZ = findViewById(R.id.editPLZ);
    editStrasse = findViewById(R.id.editStrasse);
}

public void startSecond(View view) {

    Intent i = new Intent(this, SecondActivity.class);
    String inputOrt = editOrt.getText().toString();
    String inputPLZ = editPLZ.getText().toString();
    String inputStrasse = editStrasse.getText().toString();
    i.putExtra("Ort", inputOrt);
    i.putExtra("PLZ", inputPLZ);
    i.putExtra("Strasse", inputStrasse);

    startActivityForResult(i, REQUEST_CODE);

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == REQUEST_CODE) {
        if (resultCode == Activity.RESULT_OK) {
            Bundle b = data.getExtras();

            String backStrasse    = (String) b.get("strasseback");
            String backPLZ        = (String) b.get("plzback");
            String backOrt        = (String) b.get("ortback");
            adressdaten = " " + backStrasse + " " + backPLZ + " " + backOrt;
        }
    }
}

public void abrufen (View view) {
    abrufenn = findViewById(R.id.textView5);
    abrufenn.setText(adressdaten);
}

}

Activity 2:

公共(public)类 SecondActivity 扩展 AppCompatActivity {

private EditText editOrt2;
private EditText editPLZ2;
private EditText editStrasse2;
String ort, plz, strasse;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    editOrt2 = findViewById(R.id.editOrt2);
    editPLZ2 = findViewById(R.id.editPLZ2);
    editStrasse2 = findViewById(R.id.editStrasse2);

    Intent intent = getIntent();
    Bundle daten = intent.getExtras();

    String ort = (String) daten.get("Ort");
    String plz = (String) daten.get("PLZ");
    String strasse = (String) daten.get("Strasse");

    editOrt2.setText(ort);
    editPLZ2.setText(plz);
    editStrasse2.setText(strasse);

}

public void back(View view) {
    Intent result = new Intent (this, MainActivity.class);
    result.putExtra("strasseback", strasse);
    result.putExtra("plzback", plz);
    result.putExtra("ortback", ort);
    setResult(Activity.RESULT_OK, result);

    finish();

}

}

问题是方法“abrufen”中的按钮“abrufenn”仅显示“null null null”。我不知道为什么,但是数据没有从 Activity 2 传输到 Activity 1,感谢您的帮助! :)

最佳答案

无需将其等同于bundle。 尝试使用—— String backStrasse = data.getStringExtra("strasseback"); 如果问题仍未解决,请使用调试器或上传您的 xml 文件,以便更好地查看您的代码。

关于java - onActivityResult 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50630153/

相关文章:

java - 退出 Activity 时的错误扩展了 FragmentActivity 并包含 ViewPager

java - 如何将选定的项目从一个数组复制到另一个数组?

java - 在 jython 中导入类

android - Flutter - 在 webview 上拉动刷新?

android - 整洁架构和身份验证。正确的方法?

android - Widevine 视频播放

java - JPA查询不在子查询关系表中

java - 什么是 Map<MyClassType1,Object> 类

java - Siddhi(作为图书馆)对同一流的许多查询

java - TabHost (Android) 中的 "Show More"选项与 iO 中一样