Android 带着意图回到上一个活动

Android 带着意图回到上一个活动,android,android-intent,Android,Android Intent,我有两个活动,当我在第一个活动上按enter键时,它将打开第二个活动,它包含一个列表视图,当我从列表视图中选择一个项目时,它将获取其值并返回到第一个活动 edtText.setText(getIntent().getStringExtra("NAMA_PERASAT")); // inside onCreate 这就是我尝试过的 第二次活动 listPerasat.setOnItemClickListener(new android.widget.AdapterView.OnItemClick

我有两个活动,当我在第一个活动上按enter键时,它将打开第二个活动,它包含一个
列表视图
,当我从
列表视图
中选择一个项目时,它将获取其值并返回到第一个活动

edtText.setText(getIntent().getStringExtra("NAMA_PERASAT")); // inside onCreate
这就是我尝试过的

第二次活动

listPerasat.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
     public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
            NamaPrst = ((TextView) view.findViewById(R.id.txtListNamaPrst)).getText().toString();
            Intent i = new Intent();
            i.putExtra("NAMA_PERASAT", NamaPrst);
            finish();
        }
    });
}

但什么也没发生。我如何才能获得意图并返回到以前的活动?

尝试以下方法:

Intent resultIntent = new Intent(ctx, ViewMessageDialog.class);
resultIntent.putExtra("NAMA_PERASAT", message);
ctx.startActivity(resultIntent);

你之前忘记开始一项活动了

finish();
i、 e


您想为此调用
startActivityForResult()
。所以在你的第一次
活动中

Intent i = new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(i, SOME_REQUEST_CODE); // you give SomeRequesSOME_REQUEST_CODE an int value
然后在
onItemClick()
中,需要调用
setResult()
并发回
Intent
。这将在您的第一个
活动中调用
onActivityResult()

listPerasat.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
 public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
        NamaPrst = ((TextView) view.findViewById(R.id.txtListNamaPrst)).getText().toString();
        Intent i = new Intent();
        i.putExtra("NAMA_PERASAT", NamaPrst);
        setResult(RESULT_OK, i);
        finish();
    }
});
}

调用第二个活动以获取结果。它将在OnAcitiviyResult上返回您选择的数据。 如下图所示:


第二个活动中
如下编辑代码

Intent i = new Intent();
        i.putExtra("NAMA_PERASAT", NamaPrst);
        setResult(RESULT_OK, i);
        finish();
然后在第一个活动的
onActivityResult()中,首先检查结果是否为“OK”,即选择了什么

   public void onActivityResult(int requestCode,int resultCode, Intent data)
    {
      if(resultCode == Activity.RESULT_OK){
        edtText.setText(data.getStringExtra("NAMA_PERASAT"));
      }
    }

如果在打开第二个活动后,您没有选择任何内容并按下
后退按钮
,则您将收到错误,因为没有从
第二个活动
传递任何内容。因此,首先检查是否
setResult(RESULT_OK,i)已执行,即添加了
附加程序
,我们现在手动设置一切都
正常

很好,它可以工作,但是
一些请求代码
是为了什么?我用1试过,它出现了一个错误,然后我用0试过,一切都很好。你可以使用0,也可以创建自己的
常量int
@Override
public void onActivityResult(int requestCode,int resultCode, Intent data)
{
    edtText.setText(data.getStringExtra("NAMA_PERASAT"));
}
Intent i = new Intent();
        i.putExtra("NAMA_PERASAT", NamaPrst);
        setResult(RESULT_OK, i);
        finish();
   public void onActivityResult(int requestCode,int resultCode, Intent data)
    {
      if(resultCode == Activity.RESULT_OK){
        edtText.setText(data.getStringExtra("NAMA_PERASAT"));
      }
    }