调用顺序是这样的。
主要 - > 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函数中的返回值时有任何错误。请给我你的建议来解决这个问题。我用谷歌搜索,但找不到合适的解决方案。
答案 0 :(得分:2)
Android doc没有说明如果你两次调用startActivityForResult会发生什么。 我想你应该把onActivityResult中第二个活动的调用放到第一个活动中。
至少这是我这样做的方式