回到意图previous活动 [英] back to previous activity with intent
问题描述
我有两个活动,当我$的第一个活动p $ PSS进入,它会打开第二个活动,它包含了一个的ListView
,当我选择一个项目的ListView
,它会得到它的价值,并带回第一个活动
I have two activity, and when I press enter on first activity, it will open second activity, it contains a ListView
and when I choose an item from ListView
, it will get its value and bring back to first activity
这是我已经试过;
的第二个活动
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();
}
});
}
这是第一个活动
edtText.setText(getIntent().getStringExtra("NAMA_PERASAT")); // inside onCreate
或
public void onActivityResult(int requestCode,int resultCode, Intent data)
{
edtText.setText(getIntent().getStringExtra("NAMA_PERASAT"));
}
但没有发生。我怎样才能意图,并返回到previous活动?
but nothing happen. how can I get intent and back to previous activity?
推荐答案
您想调用 startActivityForResult()
这一点。因此,在你的第一个活动
像
You want to call startActivityForResult()
for this. So in your first Activity
something like
Intent i = new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(i, SOME_REQUEST_CODE); // you give SomeRequesSOME_REQUEST_CODE an int value
然后在 onItemClick()
您需要调用的setResult()
并发送回意图
。这将调用 onActivityResult()
在你的第一个活动
then in your onItemClick()
you need to call setResult()
and send back the Intent
. This will call onActivityResult()
in your first Activity
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();
}
});
}
在 onActivityResult()
在你的第一个活动
,不叫 getIntent( )
。这将尝试使用意图
最初启动的第一个活动
。相反,使用意图
您传回
In onActivityResult()
in your first Activity
, don't call getIntent()
. This will try to use the Intent
that originally started your first Activity
. Instead, use the Intent
you passed back
@Override
public void onActivityResult(int requestCode,int resultCode, Intent data)
{
edtText.setText(data.getStringExtra("NAMA_PERASAT"));
}
<一个href="http://stackoverflow.com/questions/20387659/startactivityforresult-with-three-activities/20404668#20404668">See这个答案另一个例子
这篇关于回到意图previous活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!