Androidアプリを制作しているのですが、うまくいかないのでアドバイスください。
先日、関連した質問をさせて頂いたのですがその続きです。
チェックboxのチェックがされている時はEditTextに文字を入力できて尚且つその文字を保存したいのです。
逆にチェック無しの時はEditTextに文字は入力不可にしたいのです。
【アプリ起動時にチェックが有れば前回のEditTextの入力内容の読み出しを行い表示したい。】
中々複雑でコードを組んで見ましたがうまいこといきません。。。。
どう修正すればよいか難しく悩んでおります。
申し訳ありませんがアドバイス頂けないでしょうか?
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
final boolean checked = prefs.getBoolean("chkbox01",false);
String schetext = prefs.getString("schetext", "");
final CheckBox chkbox01 = (CheckBox)findViewById(R.id.checkbox01); chkbox01.setChecked(checked); if (!checked){ chkbox01.setText("予定を入力する場合はチェックして下さい。"); }else { chkbox01.setText("予定:No.01が入力されています。"); TextView sche01 = findViewById(R.id.schedule01); sche01.setText("Schedule No.01"); EditText scheedit = findViewById(R.id.schedule_text01); scheedit.setText(schetext); } chkbox01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { final boolean checked = chkbox01.isChecked(); EditText scheedit = findViewById(R.id.schedule_text01); String schetext = scheedit.getText().toString(); //SharedPreferencesに書き込む SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean("chkbox01", checked); editor.putString("schedule01", schetext); //editor.commit() editor.apply(); if(!checked) { chkbox01.setText("予定を入力する場合はチェックして下さい。"); TextView sche01 = findViewById(R.id.schedule01); sche01.setText(""); scheedit.setKeyListener(null); } else{ chkbox01.setText("予定:No.01が入力されています。"); TextView sche01 = findViewById(R.id.schedule01); sche01.setText("Schedule No.01"); } } });
回答1件
あなたの回答
tips
プレビュー