back to previous activity with intent
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
this is what I've tried;
on second 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();
}
});
}
on first activity
edtText.setText(getIntent().getStringExtra("NAMA_PERASAT")); // inside onCreate
or
public void onActivityResult(int requestCode,int resultCode, Intent data)
{
edtText.setText(getIntent().getStringExtra("NAMA_PERASAT"));
}
but nothing happen. how can I get intent and back to previous activity?
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
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();
}
});
}
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"));
}
See this answer for another example