2012-04-24 13 views
0

私は新しくインストールした後、私の主なものとは別のアクティビティを開くアンドロイドアプリケーションを持っています。onActivityResult()のコードが実行されていません

私はstartActivityForResult()とSharedPreferencesを使ってこれを試しました。ここに私のコードである:

主な活動:

パブリッククラスONTTMainActivityが延びるアクティビティ{

静的最終int型REQUEST_CODE = 5。

@Override  
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    SharedPreferences settings = getSharedPreferences("prefs", 0); 
    boolean firstRun = settings.getBoolean("firstRun", true); 

    if(firstRun){ 

     startActivityForResult(
      new Intent(this, ONTTSplashActivity.class), REQUEST_CODE); 
    } 

    setContentView(R.layout.activitymain); 

} 

第二の活性は:

パブリッククラスONTTSplashActivityアクティビティを拡張{

@Override
公共ボイドのonCreate(バンドルsavedInstanceState)は{

super.onCreate(savedInstanceState); 
    setContentView(R.layout.activityonttsplash); 

    final Button btnSkip = (Button) findViewById(R.id.button_skip); 
    btnSkip.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      setResult(RESULT_OK); 
      finish();  
     } 
    }); 
} 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    Toast.makeText(ONTTSplashActivity.this, "Toast Reached", Toast.LENGTH_LONG).show(); 

    if (resultCode == RESULT_OK) { 
      SharedPreferences settings = getSharedPreferences("ONTT_prefs", 0); 
      SharedPreferences.Editor editor = settings.edit(); 
      editor.putBoolean("firstRun", false); 
      editor.commit(); 
    } 
} 

問題は、たとえ2番目のアクティビティが終了するonActivityResult関数のコードは実行されません。私はそれが達成されたかどうかを見るためにトーストを使ってみました。

私はいくつかの同様の質問を見ましたが、すべての解決策を試しましたが、機能しません。

答えて

0

あなたがONTTMainActivityに戻っONTTSplashActivityから結果を取得するためONTTMainActivityからONTTSplashActivityを始めているので最初ONTTMainActivity活動にonActivityResultを置く:あなたでなければなりません

public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    Toast.makeText(ONTTMainActivity .this, "Toast Reached", Toast.LENGTH_LONG).show(); 

    if (resultCode == RESULT_OK) { 
      SharedPreferences settings = getSharedPreferences("ONTT_prefs", 0); 
      SharedPreferences.Editor editor = settings.edit(); 
      editor.putBoolean("firstRun", false); 
      editor.commit(); 
    } 
} 
+0

ああああ..その数字..おかげで、それは解決策だった – GMBrian

+0

はいtisはあなたの質問に答えるための解決策です –

0

OnActivityResultを()最初の活動ではない第二の活動に。 最初のアクティビティからstartActivityForResukts()を呼び出しているだけなので、最初のアクティビティは2番目のアクティビティの結果を期待しています。

関連する問題