簡単なスケジュールメモを作成しており
チェックboxの有り/無しでテキストとボタンの有効/無効を操作しチェック状態も保存したいのですが
コードは完成させたのですがうまい事動きません。。。。
詳細仕様は以下です。
・)textedit2つに予定内容、予定日時を入力し保存ボタンで入力状態を保存する。
※checkboxのcheckが無しだとtexteditへの入力/保存ボタン・クリアボタンの操作は無効。
※checkboxにcheckが入っていればtexteditへの入力/保存ボタン・クリアボタンの操作は有効。
・)保存ボタンでtexteditの内容/check状態を保存し、次回アプリ起動時には読みだして表示する。
エラーは出ていないのでコードの内容におかしい箇所があると思うのですが、どう修正すればいいか悩んでおります。。。。宜しければアドバイス頂きたいです。
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); final boolean checked = prefs.getBoolean("chkbox01",false); final String schetext = prefs.getString("schetext", ""); final String schetime = prefs.getString("schetime", ""); final CheckBox chkbox01 = (CheckBox)findViewById(R.id.checkbox01); chkbox01.setChecked(checked); //読み込んだ値に応じて文字列の初期状態をセット if (!checked){ chkbox01.setText("予定:No.01を入力する場合はチェックして下さい。"); EditText scheedit01 = findViewById(R.id.schedule_text01); scheedit01.setEnabled(false); // チェック無しのケースは入力禁止 EditText schetime01 = findViewById(R.id.schedule_time01); schetime01.setEnabled(false);//チェック無しの場合は予定時間も入力禁止 Button button1 = (Button)findViewById(R.id.button1); button1.setEnabled(false);//チェック無しの場合はボタンも使用できない Button button2 = (Button)findViewById(R.id.button2); button2.setEnabled(false);//チェック無しの場合はボタンも使用できない }else { chkbox01.setText("予定:No.01が入力されています。"); TextView sche01 = findViewById(R.id.schedule01); sche01.setText("Schedule No.01"); EditText scheedit01 = findViewById(R.id.schedule_text01); scheedit01.setText(schetext); EditText schetime01 = findViewById(R.id.schedule_time01); schetime01.setText(schetime); } chkbox01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //チェック状態を取得する final boolean checked = chkbox01.isChecked(); final EditText scheedit01 = findViewById(R.id.schedule_text01); scheedit01.setEnabled(true); // チェックが有りなら入力を許可する scheedit01.setText(schetext); final EditText schetime01 = findViewById(R.id.schedule_time01); schetime01.setEnabled(true);//チェックが有りなら入力を許可する。 schetime01.setText(schetime); Button button1 = (Button)findViewById(R.id.button1); button1.setEnabled(true);//チェック有ならボタン使用を許可 Button button2 = (Button)findViewById(R.id.button2); button2.setEnabled(true);//チェック有ならボタン使用を許可 //予定クリアボタンで入力内容をクリアする button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { scheedit01.getEditableText().clear(); schetime01.getEditableText().clear(); } }); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //予定内容/予定日時のテキストを取得 String savetext = scheedit01.getText().toString(); String savetime = schetime01.getText().toString(); //SharedPreferencesに書き込む SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean("chkbox01", checked); editor.putString("schetext", savetext); editor.putString("schetime", savetime); //editor.commit() editor.apply(); } }); if(!checked) { chkbox01.setText("予定:No.01を入力する場合はチェックして下さい。"); } else{ chkbox01.setText("予定:No.01が入力されています。"); } } });
回答1件
あなたの回答
tips
プレビュー