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