活动呼叫缺失

时间:2012-03-06 17:24:16

标签: android android-intent

除了主要活动之外,我还有两个子活动。

调用顺序是这样的。

主要 - > Sub_Activity1,然后Sub_Activity1返回主活动。 主要---> Sub_Activity2,然后Sub_Activity2返回主要活动。

但它没有发生。到目前为止我只能看到第二个子活动被调用,它正在跳过第一个。但是当我禁用/注释掉其中一个子活动时,另一个活动效果很好。但是当我想要一个接一个地打电话时,它只调用第二个。我哪里错了。这是我的代码

主要活动:

public void onCreate(Bundle savedInstanceState)  {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    btn = (Button) findViewById(R.id.btn1);
    txt = (TextView) findViewById(R.id.textview1);
    txt.setText("hello world");
    in1= new Intent(TestActivity.this,Number.class);
    //startActivity(in1);
    startActivityForResult(in1, MY_DATA_CHECKCODE);


    in2= new Intent(TestActivity.this,Message.class);
    //startActivity(in1);
    startActivityForResult(in2, MY_DATA_CHECKCODE1);

}


protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == MY_DATA_CHECKCODE) {


        num= data.getStringExtra("number");
        if(num!=null)
        txt.setText(num);

    }

    else if (requestCode == MY_DATA_CHECKCODE1) {


        num= data.getStringExtra("number");
        if(num!=null)
        txt.setText(num);

    }

}

subactivity1和subactivity2代码相同,用于将一些字符串数据添加到可以在主意图中检索的新意图。

                     number = et.getText().toString().trim();

            in= new Intent();

            //in.putExtras(b);
            in.putExtra("number", number);
            setResult(Activity.RESULT_OK,in);

我已经将变量更改为使用不同的请求代码。它们是MY_DATA_CHECKCODE和MY_DATA_CHECKCODE1.在处理onActivitResult函数中的返回值时有任何错误。请给我你的建议来解决这个问题。我用谷歌搜索,但找不到合适的解决方案。

1 个答案:

答案 0 :(得分:2)

Android doc没有说明如果你两次调用startActivityForResult会发生什么。 我想你应该把onActivityResult中第二个活动的调用放到第一个活动中。

至少这是我这样做的方式