如何从调用活动中获取一些文本

时间:2013-10-12 20:48:46

标签: android android-intent actionresult start-activity

我有一项活动,呼叫另一项活动填写地址,第二项活动应该发回第一项活动的地址,并在第一项活动的文本视图中显示

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

第一项活动:

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

提前致谢

3 个答案:

答案 0 :(得分:2)

您需要使用startActivityForResult开始第二项活动:

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

onActivityResult中,您还应该检查resultCodeRESULT_OK,而不是requestCode

答案 1 :(得分:1)

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

答案 2 :(得分: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();

现在正在运作