2017-11-28 4 views
2

私はテキストビューを持っています。ユーザーがクリックすると、見えなくなります。しかし、私はそれが "sharedpreferences"を使用して、ユーザーがアプリケーションを再読み込みした後でさえ、見えないままにしておきたい。どのように共有設定を動作させ、その後正しく呼び出すか?sharedpreferencesを使用して、それをクリックした後に隠されたテキストビューを覚えています。

これは、ユーザーがのTextViewをクリックしたときに優先順位を格納するための私のコードです:

textView.setVisibility(View.INVISIBLE); 
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE); 
SharedPreferences.Editor editor = pref.edit(); 
editor.putBoolean("was_clicked", true); 
editor.commit(); // commit changes 

だから私は、これは「was_clicked」と呼ばれる共有設定で真/偽のブール値を格納します理解しています。

今、アクティビティのonCreateメソッドで "true"がチェックされていて、それではwas_clicked = trueの場合、TextViewをview.INVISIBLEに設定するにはどうすればよいですか?

+0

あなたの質問に答えるために、それはあなたが解決して私の答えをマークすることを忘れないでください – diegoveloper

+0

役に立てば幸い:) – diegoveloper

答えて

1

あなたは、このメソッドを使用して値を確認することができます:あなたは好みを作成し、このようにそれらから読むべきあなたのonCreate方法で

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE); 
boolean wasClicked = pref.getBoolean("was_clicked",false); 
if (wasClicked){ 
     textView.setVisibility(View.INVISIBLE); 
}else { 
     textView.setVisibility(View.VISIBLE); 
} 
+0

これも動作します!ありがとうございました!!! – Photogd

1

static final String PREFERENCES_NAME = "MyPref"; 
static final String WAS_CLICKED_NAME = "was_clicked"; 

@Override 
void onCreate() 
{ 
    SharedPreferences preferences = getApplicationContext().getSharedPreferences(PREFERENCES_NAME, MODE_PRIVATE); 
    boolean invisible = preferences.getBoolean(WAS_CLICKED_NAME, false); // 2nd argument is the default value 
    if (invisible) 
    { 
    textView.setVisibility(View.INVISIBLE); 
    } 
} 

getBoolean方法はwas_clicked」の値を読み込みます"好み。 2番目の引数は、まだ共有設定に値 "was_clicked"を設定していない場合は返されますので、textviewを表示するように設定していない場合はfalseを返すことができます。

+0

は完璧に動作します、ありがとうございます! – Photogd

2

this articleを参照してください。しかし、私は以下の私の答えを入れて、具体的

if (getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE).getBoolean("was_clicked", false)) 
    textView.setVisibility(View.INVISIBLE); 
関連する問題