0

我有一个活动调用另一个活动来填写地址,第二个活动应该发回第一个活动的地址并在第一个活动的文本视图中显示它

我使用了这些代码,但我不知道为什么它不起作用

第一项活动:

 Intent in = new Intent(getApplicationContext(),ShippingActivity.class);
            startActivity(in);

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == RESULT_OK){
            tvDeliverTo.setText(data.getStringExtra("DeliveryAdressKEY"));
        }
    }

和第二个活动

   Intent in = new Intent();
    in.putExtra("DeliveryAdressKEY", tvAdress.getText().toString());
    setResult(RESULT_OK, in);
    finish();

提前致谢

4

3 回答 3

2

您需要开始第二个活动startActivityForResult

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int%29

onActivityResult中,您还应该检查resultCodeis RESULT_OK,而不是requestCode.

于 2013-10-12T20:58:01.640 回答
1

我相信你应该使用 startActivityForResult() 而不是 startActivity()。

于 2013-10-12T20:57:30.667 回答
0

第一项活动

Intent in = new Intent(getApplicationContext(),ShippingActivity.class);
            startActivityForResult(in, 0);


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == 0){
            if(resultCode ==1){
tvDeliverTo.setText(data.getStringExtra("DeliveryAdressKEY"));              
            }
        }
    }

和第二个活动

Intent in = new Intent();
in.putExtra("DeliveryAdressKEY", tvAdress.getText().toString());
setResult(1, in);
finish();

现在正在工作

于 2013-10-12T21:35:10.123 回答