2017-04-17 7 views
-3

私は、どちらも同じ活動しようとしている2つのリスナーは2つのStartActivityFor結果を区別するためにどのように()

fromCityTrain.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i = new Intent(getActivity(),train_autocomplete.class); 
      startActivityForResult(i, 2); 
     } 
    }); 

    toCityTrain.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i = new Intent(getActivity(),train_autocomplete.class); 
      startActivityForResult(i, 3); 
     } 
    }); 

を持っています。今私がデータを返すと、どの人がそれを呼んでいるかをどのように知るのだろうか。

これはtrain_autocomplete.classのコンテンツ

Intent intent=new Intent(); 

      intent.putExtra("stationCode",stationCode); 
      intent.putExtra("stationName",stationName); 
      setResult(2,intent); 
      finish(); 
+0

要求のコードを使用して区別します。 finish()の前の –

答えて

0

onActivityResultはあなたにrequestCodeを提供しますです。あなたの例では、最初のケースは2、2番目のケースは3です。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch(requestCode) { 
    case 2: 
     // fromCityTrain 
     if(resultCode==2) Log.i("TAG", "resultCode 2 returned from activity"); 
     else Log.i("TAG", "resultCode "+ resultCode +" returned from activity"); 
     break; 
    case 3: 
     // toCityTrain 
     if(resultCode==2) Log.i("TAG", "resultCode 2 returned from activity"); 
     else Log.i("TAG", "resultCode "+ resultCode +" returned from activity"); 
     break; 
    } 
} 
+0

;私はsetResult(2、intent)を使用しました。これは誰が呼び出しても毎回要求コードを2に設定し、3を使用すると3回ごとにリクエストコードが渡されます – Swarnveer

+0

私はあなたがrequestCodeとresultCodeの間で混乱していると思います。 setResultはresultCodeを設定し、requestCodeは設定しません。 –

+0

ああ、それを得ました....でも、どちらの人が呼び出しても、結果コードはどちらも送信されます。 – Swarnveer

関連する問題