我有一个应用程序,我想根据我点击的按钮开始两个活动之一,然后从被调用的活动中返回某些值。我知道我应该使用requestCode来检查Activity。但无论哪种方式,应用程序都假设第一个活动被调用。这是我在主类中的代码的一部分。
public void onClick(View v) {
switch(v.getId())
{
case R.id.start:
Intent i = new Intent(this, one.class);
startActivityForResult(i, FIRST_CODE);
break;
case R.id.qwe:
Intent j = new Intent(this, two.class);
startActivityForResult(j, SECOND_CODE);
break;
}
后来,
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode==FIRST_CODE)
{
if(resultCode==RESULT_OK)
{
min = Integer.parseInt(data.getStringExtra("minutes"));
sec = Integer.parseInt(data.getStringExtra("seconds"));
test1.setText(min + ":" + sec);
}
}
else if(requestCode==SECOND_CODE)
{
if(resultCode==RESULT_OK)
{
runMin = Integer.parseInt(data.getStringExtra("minutes"));
runSec = Integer.parseInt(data.getStringExtra("seconds"));
test2.setText(runMin + ":" + sec);
}
}
}
在我的班级'one'和'two'中,这是我的代码:
min = (EditText)findViewById(R.id.smin);
sec = (EditText)findViewById(R.id.ssec);
String mtime, stime;
mtime = min.getText().toString();
stime = sec.getText().toString();
dat2 = new Intent();
dat2.putExtra("minutes", mtime);
dat2.putExtra("seconds", stime);
setResult(RESULT_OK, dat2);
finish();
两个班级都是一样的。那是错的吗?谢谢。 :)
答案 0 :(得分:0)
应用程序不假设第一个活动被调用。通过记录来检查requestCode
中onActivityResult()
的值,
在onActivityResult()的第一行使用Log.d("TAG",requestCode);
;
它将为您提供调用哪个活动的信息(使用什么请求代码)...
如何将数据放入两个差异活动的意图中,以及如何在此活动中处理它是完全不同的事情......