-1

sharedPreferences에 부울 FAVORITE 데이터를 저장하려고합니다. 휴대 전화가 회전하거나 닫을 때. 기본값으로 작동하지 않습니다. 나는이 코드가 뭐가 잘못 됐는지 모른다. 문제는 누군가가 코드SharedPrefenrences가 부울 값을 저장하지 않습니다.

//Context context =this; 

String FAVOURITE = "selected"; 

boolean favourite = false; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if(savedInstanceState!=null){ 
     favourite = savedInstanceState.getBoolean(FAVOURITE,false); 
     Toast.makeText(this,""+favourite,Toast.LENGTH_SHORT).show(); 

    } 

    final Bundle queryBundle = new Bundle(); 

    movieObject=(CardsClass)getIntent().getSerializableExtra("movieObject"); 

    setTitle(movieObject.getmTitle()); 

    setContentView(R.layout.activity_details); 

    final ImageView fav = (ImageView)findViewById(R.id.fav); 

    fav.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (favourite == false) { 

       favourite = true; 

       fav.setImageResource(R.drawable.fav_on); 

       Toast.makeText(DetailsActivity.this, favourite + " is added to favourites", Toast.LENGTH_SHORT).show(); 

       queryBundle.putBoolean(FAVOURITE,favourite); 

      } 

      else if(favourite){ 

       favourite=false; 

       fav.setImageResource(R.drawable.fav_off); 

       queryBundle.putBoolean(FAVOURITE,favourite); 

       Toast.makeText(DetailsActivity.this, movieObject.getmTitle() + " is removed from favourites", Toast.LENGTH_SHORT).show(); 


      } 
     } 
    }); 
+6

'SharedPreferences'? –

+0

번들을 사용하려고했습니다. 나는 그것을 바꿨다. 지금 그것은 작동 중입니다 – user5444140

답변

1

사실, 잘못된 일을하고있는 저에게 문제를 표시 할 수 있습니다 뭐죠 난 알아낼 수 없습니다입니다.

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    outState.putBoolean(FAVOURITE, favorite); // then you can check the favorite value in onCreate as well. 
    super.onSaveInstanceState(outState); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    this.favorite = savedInstanceState.getBoolean(FAVOURITE); 
    // do something here when restore. 
    super.onRestoreInstanceState(savedInstanceState); 
} 
1

쓰거나 SharedPreferences

쓰기에서 읽기 위해 : 당신은 뭔가를해야

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putBoolean(FAVORITE, favorite); 
editor.commit(); 

읽기 다음에 저장의 코드입니다

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
Boolean favorite = sharedPref.getBoolean(FAVORITE, true); 
+0

고마워! 내가 번들을 바꾼 지금은 작동 중이다. – user5444140

관련 문제