2017-09-19 8 views
1

문제는 공유 환경 설정에서 내 Google 버튼 상태를 저장하려는 것이므로 이전 상태로 남아있을 때 내 Google 버튼으로 애플리케이션으로 돌아갈 때입니다. 이것은 일종의 것입니다 이것을 사용 하시겠습니까? 사용자가 버튼을 활성화하면 돌아 왔을 때 버튼이 활성화 될 것임을 나타냅니다. 지금까지 내가 그랬어공유 환경 설정에서 버튼 상태를 Google에 저장하고 나중에 Android에서 상태를로드하는 방법은 무엇입니까?

tb_vibrate = (ToggleButton)this.findViewById(R.id.tb_vibrate); 
tb_vibrate.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if(tb_vibrate.isChecked()) 
      { 
       Toast.makeText(ProfileActivity.this, "Toggle button is on", Toast.LENGTH_LONG).show(); 
       tb_vibrate.setChecked(true); 
      } 
      else { 
       Toast.makeText(ProfileActivity.this, "Toggle button is Off", Toast.LENGTH_LONG).show(); 
       tb_vibrate.setChecked(false); 
      } 
     } 
    }); 

입니다 그리고 이것은 내 SharePreference 클래스입니다

public class NotificationManager { 

    private static final String PREFS_FILE_NAME = "AppNotificationManager"; 
    private static final String VIBRATE = "vibrate"; 
    private static final String NOTIFICATION_ALERT = "notification_alert"; 
    private static final String NOTIFICATION_SOUND = "notification_sound"; 
    private static final String CALL_RINGTONE = "call_ringtone"; 
    private static final String RINGTONE_VIBRATION = "ringtone_vibrate"; 

    public static void setVibrate(final Context ctx, final String vibrate) { 
     final SharedPreferences prefs = ctx.getSharedPreferences(NotificationManager.PREFS_FILE_NAME, Context.MODE_PRIVATE); 
     final SharedPreferences.Editor editor = prefs.edit(); 
     editor.putString(NotificationManager.VIBRATE, vibrate); 
     editor.commit(); 
    } 

    public static String getVibrate(final Context ctx) { 
     return ctx.getSharedPreferences(NotificationManager.PREFS_FILE_NAME, 
       Context.MODE_PRIVATE).getString(NotificationManager.VIBRATE, ""); 
    } 


    } 

어떻게 데이터를 저장하기 위해 내 공유 환경 설정 클래스를 작성하고 나중에 사용할 수 있습니까?

답변

2

당신이 SharedPreferences이의 상태를 저장하는 데 사용할 수 있습니다 ToggleButton

SharedPreferences 클래스를 저장하고 기본 데이터 형의 지속적인 키 - 값 쌍을 검색 할 수있는 일반적인 프레임 워크를 제공합니다. SharedPreferences를 사용하여 부울, 부동 소수점, 정수, Long 및 문자열과 같은 기본 데이터를 저장할 수 있습니다. 이 데이터는 사용자 세션 전체에서 유지됩니다 (응용 프로그램이 종료 된 경우에도 마찬가지 임).

샘플 코드

SharedPreferences sp=getSharedPreferences("Login", Context.MODE_PRIVATE); 
SharedPreferences.Editor Ed=sp.edit() 

tb_vibrate = (ToggleButton)this.findViewById(R.id.tb_vibrate); 
tb_vibrate.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if(tb_vibrate.isChecked()) 
      { 
       Toast.makeText(ProfileActivity.this, "Toggle button is on", Toast.LENGTH_LONG).show(); 
       tb_vibrate.setChecked(true); 

       Ed.putBoolean("ISCHECKED",true); 
       Ed.commit(); 

      } 
      else { 
       Toast.makeText(ProfileActivity.this, "Toggle button is Off", Toast.LENGTH_LONG).show(); 
       tb_vibrate.setChecked(false); 
       Ed.putBoolean("ISCHECKED",false); 
       Ed.commit(); 
      } 
     } 
    }); 

지고 값은

SharedPreferences preferences = getSharedPreferences("MyPrefs", MODE_PRIVATE); 
boolean flag = preferences.getBoolean("ISCHECKED", false); 
if(flag){ 
     tb_vibrate.setChecked(true); 
    }else { 
     tb_vibrate.setChecked(false); 
    } 
+0

코드 위에 내 업데이트 된 질문 –

+0

사용 –

+0

내가 학급 전체 당신과 함께 공유 할 수 @TanvirDurlove 참조하십시오 아래의 코드를 사용합니다. 사용법을 이해하지 못해 죄송합니다. –