2017-04-20 120 views
-1

对活动的onActivityResult方法始终为Intent额外返回null。我直接在活动上调用这些方法。请帮助找到解决方案。为什么onActivityResult始终为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

@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(); 
} 

开始CustomerListActivity这是从触发列表项点击听者回收站视图适配器类的接口方法。在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在OrderActivity中覆盖方法。

回答

1

onActivityResult()在你的代码它命名为data提供了一个Intent。您应该使用此data而不是getIntent()来获取extra值。

试试这个:

@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 
    } 
} 
+0

对不起。我是个白痴。 –

+0

不用担心。 ..只是一个错误。顺便说一句如果我的答案似乎有用,请给予upvote。提前致谢... – FAT

1

您正在从活动意向中获得额外费用,而不是活动结果意向。

而不是

String testing = getIntent().getStringExtra("testing"); 
Customers customers = getIntent().getParcelableExtra("selected_customer"); 

String testing = data.getStringExtra("testing"); 
Customers customers = data.getParcelableExtra("selected_customer");