2012-04-24 5 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(); 
    } 
} 

문제가 있음에도 두 번째 활동이 종료 됨 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()를 호출하므로 첫 번째 활동은 두 번째 활동의 결과를 기대합니다.

관련 문제