java - 无 Intent 的刷新 Activity

标签 java android

我有 3 项 Activity 。 Intent 从 Activity 1 传递到 Activity 2,其中包含一些用于数据库事务的数据。 Activity 2 中的数据和 Intent 被传递到 Activity 3。

现在,我想从 Activity 3 转移到 Activity 2,但当 Activity 2 从 Activity 1 获取 Intent 时,它会返回一些错误,导致 null 异常:/

因此,我想在从 Activity 3 返回时刷新 Activity 2,但没有 Intent 或正确使用不会影响数据的 Intent

最佳答案

从 Activity1 启动 Activity2:

Intent i = new Intent(this,  Activity2.class);
startActivityForResult(i, 1);

在 Activity2 中使用 setResult 发送回数据:

Intent intent = new Intent();
intent.putExtra("edittextvalue","value_here")
setResult(RESULT_OK, intent);        
finish();

并在第一个 Activity 中接收数据作为 onActivityResult:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
         if(resultCode == RESULT_OK){
             String stredittext=data.getStringExtra("edittextvalue");
         }     
    }
} 

你可以用这个 在 Activity 2中,

@Override
public void onBackPressed() {
    String data = mEditText.getText();
    Intent intent = new Intent();
    intent.putExtra("MyData", data);
    setResult(resultcode, intent);
}

Activity 1中,

onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        if(resultCode == RESULT_OK) {
            String myStr=data.getStringExtra("MyData");
            mTextView.setText(myStr);
        }
    }
}

您可以使用SharedPreferences也用于在 Activity 之间共享数据

关于java - 无 Intent 的刷新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122942/

相关文章:

java - 两种不同的架构和 JAXB Marshaller

java - 如何清除ListView选择?

java - 如何在 Android 上运行小程序?

java - 如何在日历中显示两位数?

java - Java计算5次考试成绩的平均值

java - 如何从线程更新黑莓 UI 项目?

java.awt.Graphics 绘制后改变颜色

Android - 如何从文档中获取选定的文件名

android - 我怎样才能知道手势何时完成

android - 感叹号错误?