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.