【发布时间】:2016-01-21 02:56:08
【问题描述】:
在我上一篇文章的基础上,我现在想从主活动中调用子活动多次。在我的真实项目中(与下面的 noddy 测试相反),当调用子活动时,它的标题显示,“输入第一个数据集”然后邀请用户输入一些数据。这些数据实际上存储在一个公共类中,而不是返回给主活动。然后需要用新的提示“输入第二个数据集”再次调用孩子,同样的事情也会发生。 我无法解决的是如何做到这一点。如果我对孩子进行两次呼叫,则每次似乎只发生第二次呼叫,每次出现在孩子活动中的提示都是“输入第二个数据集”。我相信这个 startActivityForResult() 方法被设计用于当你想调用一个活动并等待结果时使用(你用 onActivityResult() 做的不是),但它不会等待。
我到底该怎么做呢?示例代码如下。
感谢任何可以清楚地解释我哪里出错以及正确的代码应该是什么的人。
MainActivity 代码提取
@Override
public void onResume(){
super.onResume();
TextView maintop = (TextView)findViewById(R.id.maintop);
maintop.setText(Common.mess1);
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button mainbutton = (Button)findViewById(R.id.mainbutton);
mainbutton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Intent intent1 = new Intent(MainActivity.this,Child.class);
intent1.putExtra("Prompt", "Enter first data set");
startActivityForResult(intent1,1);
onActivityResult(1,1,intent1);
}
});
mainbutton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Intent intent2 = new Intent(MainActivity.this,Child.class);
intent2.putExtra("Prompt", "Enter second data set");
startActivityForResult(intent2,1);
onActivityResult(1,1,intent2);
}
});
}
【问题讨论】:
标签: java android android-activity android-studio