2017-01-03 14 views
0

私はアンドロイドが新しく、チェックボックスがオンのときにアラームを開始し、チェックボックスの状態を保存したままにするアプリケーションを作成する必要があります。チェックボックスの値を保存してアラームを開始するためにintを使用しようとしましたが、動作しません。チェックボックスとアラームの状態を保存する

public int getValueC(String key) { 
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
    int value = sharedPref.getInt(key, 0); 
    return value; 
} 
public void saveValueC(String key, int value) { 
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPref.edit(); 
    editor.putInt(key, value); 
    editor.apply(); 
} 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_a_d_q); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    final CheckBox checkBox1 = (CheckBox) findViewById(R.id.mc); 
    final String keyC = "somekeyC"; 
    c = getValueC(keyC); 

    checkBox1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      c++; 
      saveValueC(keyC,c); 

      if (c%2==0){ 
       Toast ToastMessage = Toast.makeText(getApplicationContext(), "off", Toast.LENGTH_LONG); 
       //View toastView = ToastMessage.getView(); 
       //toastView.setBackgroundColor(Color.YELLOW); 
       ToastMessage.show(); 
       alarmManagers.cancel(pendingIntent); 
      } 
      else{ 
       Toast ToastMessage = Toast.makeText(getApplicationContext(), "on", Toast.LENGTH_LONG); 
       //View toastView = ToastMessage.getView(); 
       //toastView.setBackgroundColor(Color.YELLOW); 
       ToastMessage.show(); 
       alarmManagers.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(),2*60*1000,pendingIntents); 

       checkBox1.isChecked(); 
      }}); 
    if (c%2==0){ 

     Toast ToastMessage = Toast.makeText(getApplicationContext(), "Even number", Toast.LENGTH_LONG); 
     //View toastView = ToastMessage.getView(); 
     //toastView.setBackgroundColor(Color.YELLOW); 
     ToastMessage.show(); 

    } 
    else{ 

     checkBox1.isChecked(); 
    } 

アラームが正常に機能するため、アラームマネージャとインテントコードが含まれていませんでした。私は値をチェックボックスに保存する必要があります。アラームをオンにし、チェックボックスの状態を保存する必要があります。それがチェックされていないとき。それはアラームをオフにし、チェックボックスの開始を保存する必要があります。

私はそれを理解しようと時間を費やしました。あなたが問題を知っているなら、PLZは私に知らせてください。ありがとう

答えて

0

apply()を使用していますが、成功または失敗を示すブール値を返すことなくコミットします。

commit()を使用してください。これは、保存が機能する場合はtrueを返し、そうでない場合はfalseを返します。可変状態が保存されているかどうかを判断するのに役立ちます。

0

CheckBoxをチェックするには、checkBox1.setChecked(true);を使用する必要があります。 checkBox1.isChecked();は、チェックボックスのステータスを取得することです。

関連する問題