按下后退按钮时活动不发送结果

时间:2012-02-23 09:11:34

标签: java android eclipse

我正在使用以下代码开始我的活动

public void onClick(View v) {

                Intent myIntent = new Intent(v.getContext(), AddReceipt.class);

                startActivityForResult(myIntent, RECEIPT_ADDED);
            }

现在我想从addreceipt类获取数组或从我的子活动获取数据

public synchronized void onActivityResult(final int requestCode, int resultCode, final Intent data) {

             if (resultCode == Activity.RESULT_OK) 
             {
                 if (requestCode == RECEIPT_ADDED)
                 {
                     String abc = "abs";
                 }
             }

         }

调用此函数时,它返回数据为null,结果代码为0.如何从我的子活动中获取数据。

BesT问候

2 个答案:

答案 0 :(得分:1)

要从子活动中获取结果,您需要在子活动中调用setResult()方法,将结果代码和可能的任意数量的数据传递到Intent对象中。然后,您可以在主要活动的Intent中抓住此onActivityResult()。希望这会有所帮助。

答案 1 :(得分:0)

要将数据从子活动传递到父活动,请使用以下代码:

Intent intent= childActivity.getIntent();
intent.putExtra("key","value");  
childActivity.setResult(Activity.RESULT_OK, intent);
childActivity.finish();

如果value是对象列表,则使用Serializable。

现在,如果您按下后退按钮,将调用父类的onActivityResult方法,您将获得RESULT_CANCEL