Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么onActivityResult总是为Intent extra返回空值_Android_Android Intent - Fatal编程技术网

Android 为什么onActivityResult总是为Intent extra返回空值

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

活动上的onActivityResult方法对于Intent extra始终返回null。我直接在活动中调用这些方法。请帮助找到解决方案

 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
    }
}