Issue
My onActivityResult method on activity always returns null for Intent extra. I'm directly calling these methods on activities. please help to find a solution for this.
private void onClickShopNameLayout() {
shopNameLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(OrderActivity.this,CustomerListActivity.class);
startActivityForResult(i,CUSTOMER_REQUEST_CODE);
}
});
}
Starting CustomerListActivity from OrderActivity
@Override
public void onItemClick(View v, int position) {
Customers customers = customersData.get(position);
Intent intent = new Intent();
intent.putExtra("testing","String value");
intent.putExtra("selected_customer",customers);
setResult(Activity.RESULT_OK,intent);
finish();
}
This is an Interface method from Recycler view Adapter class which triggers on list item click listner. implemented in CustomerListActivity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CUSTOMER_REQUEST_CODE:
if (resultCode == Activity.RESULT_OK) {
String testing = getIntent().getStringExtra("testing");
Customers customers = getIntent().getParcelableExtra("selected_customer");
String businessName = customers.getBusinessName();
Log.d(TAG,"customer name "+businessName +" testing "+testing);
}
}
}
onActivityResult override method in OrderActivity.
Solution
Your onActivityResult()
provides an Intent
in your code its named as data
. You should use this data
instead of getIntent()
to get intent extra
values .
Try this:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CUSTOMER_REQUEST_CODE:
if (resultCode == Activity.RESULT_OK) {
String testing = data.getStringExtra("testing");
Customers customers = data.getParcelableExtra("selected_customer");
String businessName = customers.getBusinessName();
Log.d(TAG,"customer name " + businessName +" testing "+testing);
}
break; // Don't forget to use break for multiple cases
}
}
Answered By - Ferdous Ahamed
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.