2017-05-21 7 views
0

私は2つのボタン(button1button2)を私の活動で持っています。 botton1は「有効」(真)であり、他方は無効です。アクティビティのボタンの状態を保存します。

button1をクリックすると、button2が「有効」になります。私はこのアクティビティを次のアプリケーションの利用のためにこの状態で記録したいと思います。

+3

素晴らしいです。どうすればいいですか? "あなたが持っているコードを表示してもらえますか? –

答えて

0

あなたはsharedPrefrencesの状態を保存することができ、この

SharedPreferences prefs = getSharedPreferences("Your preference name here", MODE_PRIVATE) 


b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       b2.setEnabled(true); 
       prefs.edit().putBoolean("b2enabled", true).commit();//saving State here 
      } 
     }); 

を試してみて、今、あなたは簡単なこの状態を使用するような状態を取得したいところ。

Boolean b2state= prefs.getBoolean("b2enabled", false); //false is the default value 

そして、あなたはその結果に有効または無効ボタンにしたい場合は、さて、あなたは、データ・ストレージ・オプションのヘルプを

if (b2state){ 
b2.enabled(true); 
} 
else{ 
b2.enabled(false); 
} 
+0

apply()を使用しています。非同期であるため、より良いかもしれません。 –

+0

無効に戻すとどうなりますか?それは保存されますか? –

+0

ええ、私たちはまた、無効の状態を保存することができます少し変更しても、この質問 –

0

使用することができます。このような簡単な作業の場合は、 の共有設定で十分です。 これを使って状態の変化を保存します。

function setState(boolean state){ 
    SharedPreferences sharedPref =this.getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPref.edit(); 
    editor.putBoolean("state",state); 
} 

このようにいつでも(通常は最初に)データを取得できます。 2番目の引数がデフォルト値を提供することに注意してください。

int state=this.getPreferences(Context.MODE_PRIVATE).getBoolean("state",false); 

これが役に立ちます。

関連する問題