2012-02-04 13 views
0

私は、クリックしたボタンに基づいて2つのアクティビティのうちの2つを開始し、その後呼び出されたアクティビティから特定の値を返すアプリケーションを持っています。私は、requestCodeを使ってアクティビティをチェックすべきであることを知っています。しかしどちらの方法でも、アプリは最初のアクティビティが呼び出されていると仮定しています。メインクラスのコードの一部です。私のクラス '1' と '2' で複数のアクティビティからの戻り値

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); 
     } 
    } 
} 

、これは私のコードです:

 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

なぜ2つの同じ種類のアクティビティを作成する必要がありますか?そうでなければ何も間違っていない –

+0

私は両方のアクティビティから2つの異なる時間を取得したいと思います。どちらも基本的に同じですが、別の変数に異なる結果を格納したいので、両方の変数を後で使用することができます。 –

+0

私は1つのアクティビティを作成し、そのアクティビティでブール変数などの条件によって時間を区別する必要があると思います。その可変状態に応じて、結果を他の必要な変数に格納することができます。 –

答えて

0

アプリは最初のアクティビティが呼ばれているとは想定していません。それがログによってrequestCodeonActivityResult()のチェック値、 使用Log.d("TAG",requestCode);のonActivityResult()の最初の行で;
アクティビティが呼び出された情報abtをどのようなリクエストコードで呼び出すかを指定します。

diffアクティビティでのデータのインテントと、このアクティビティでの処理方法はすべて別のもの...