2014-07-26 6 views
0

사용자가 스플래시 화면을 활성화 또는 비활성화 할 수있게하고 싶습니다. 제 클래스 이 클래스에 정의 된 초기 화면, 처리 SplashActivity라는 :공유 환경 설정으로 토글 저장

나는 두 클래스 전환 버튼을 가지고있는 두 번째 클래스라는

package com.test.splash; 
import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.os.Handler; 


public class SplashActivity extends Activity { 
/** Called when the activity is first created. */ 

public SharedPreferences preferences; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    SharedPreferences sharedPref = getSharedPreferences("sharedPref1", MODE_PRIVATE); 


    boolean sharedPref1 = preferences.getBoolean("sharedPref1", true); 
    //???.setChecked(sharedPrefs.getBoolean("NameOfThing ToSave", true)); 
    if (sharedPref1 = true) //if (tgpref) may be enough, not sure 
    { 

MediaPlayer mp = MediaPlayer.create(this, R.raw.play); 

mp.start(); 
    Handler handler = new Handler(); 
    handler.postDelayed(new Runnable(){ 
     public void run(){ 
      finish(); 
      startActivity(new Intent (SplashActivity.this,asli.class)); 
     } 
    }, 1000); 
} 
    else 
    { 
     startActivity(new Intent (SplashActivity.this,asli.class)); 
    } 
    } 
} 

슬리 이 클래스에서 토글 상태를 저장하기위한 공유 환경 설정을 정의했습니다.

package com.test.splash; 


import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.preference.PreferenceActivity; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ToggleButton; 



public class asli extends PreferenceActivity{ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.asli); 


    final ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleButton1); 
    toggle.setOnClickListener(new OnClickListener(){ 
    public void onClick(View v) 
    { 
     if (toggle.isChecked()) 
     { 
      SharedPreferences.Editor editor = 
getSharedPreferences("sharedPref1", MODE_PRIVATE).edit(); 
      editor.putBoolean("sharedPref1", true); 
      editor.commit(); 
     } 
     else 
     { 

SharedPreferences.Editor editor = 
getSharedPreferences("sharedPref2", MODE_PRIVATE).edit(); 
      editor.putBoolean("sharedPref2", false); 
      editor.commit(); 
     } 
    } 

}); 

} 
} 
+0

흐라, 정도 이 ? –

+0

@zahra : 대답이 도움이되지 않았습니까? –

답변

0

문제가 초기화되지 않았습니다. preferences입니다.

클래스에 preferences을 정의했지만 올바르게 초기화하지 않았습니다.

public SharedPreferences preferences; 

이 줄에 널 (null) 변수에서 부울을 받고 :

boolean sharedPref1 = preferences.getBoolean("sharedPref1", true); 

그래서 preferences을 사용하기 전에 초기화 할 필요가 좋아 : 어떤 문제가 당신이 들어갈

preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()) 
관련 문제