Android 为什么onActivityResult总是为Intent extra返回空值
活动上的onActivityResult方法对于Intent extra始终返回null。我直接在活动中调用这些方法。请帮助找到解决方案Android 为什么onActivityResult总是为Intent extra返回空值,android,android-intent,Android,Android Intent,活动上的onActivityResult方法对于Intent extra始终返回null。我直接在活动中调用这些方法。请帮助找到解决方案 private void onClickShopNameLayout() { shopNameLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent
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);
}
});
}
从OrderActivity启动CustomerListActivity
@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();
}
这是来自Recycler视图适配器类的接口方法,它在列表项单击listner时触发。在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);
}
}
}
OrderActivity中的onActivityResult重写方法。您将从活动意图而不是活动结果意图中获取额外内容 而不是
String testing = getIntent().getStringExtra("testing");
Customers customers = getIntent().getParcelableExtra("selected_customer");
做
onActivityResult在代码中提供了一个名为数据的意图。您应该使用此数据而不是getIntent来获取intent额外值
试试这个:
不用担心。。这只是一个错误而已。顺便说一句,如果我的答案似乎有用,请投赞成票。先谢谢你。。。
String testing = data.getStringExtra("testing");
Customers customers = data.getParcelableExtra("selected_customer");
@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
}
}