返回多个活动的值

时间:2012-02-04 17:28:12

标签: android android-activity android-intent

我有一个应用程序,我想根据我点击的按钮开始两个活动之一,然后从被调用的活动中返回某些值。我知道我应该使用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();

两个班级都是一样的。那是错的吗?谢谢。 :)

1 个答案:

答案 0 :(得分:0)

应用程序不假设第一个活动被调用。通过记录来检查requestCodeonActivityResult()的值, 在onActivityResult()的第一行使用Log.d("TAG",requestCode);;
 它将为您提供调用哪个活动的信息(使用什么请求代码)...

如何将数据放入两个差异活动的意图中,以及如何在此活动中处理它是完全不同的事情......