回答編集履歴

1

SharedPreferencesについて追記

2020/08/10 12:39

投稿

keicha_hrs
keicha_hrs

スコア6768

test CHANGED
@@ -33,3 +33,101 @@
33
33
  });
34
34
 
35
35
  ```
36
+
37
+
38
+
39
+ ---
40
+
41
+
42
+
43
+ > アプリを起動してチェックを入れてその状態を保持したい
44
+
45
+
46
+
47
+ Androidには情報を保存するための機能がいくつかありますが、少量の情報ならばSharedPreferencesを用いればいいでしょう。それを組み込んで作るならばこのような感じすればいいのではないでしょうか。
48
+
49
+
50
+
51
+ ```java
52
+
53
+ @Override
54
+
55
+ protected void onCreate(Bundle savedInstanceState) {
56
+
57
+ super.onCreate(savedInstanceState);
58
+
59
+ setContentView(R.layout.activity_main);
60
+
61
+
62
+
63
+ // SharedPreferencesから読み込み
64
+
65
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
66
+
67
+ final boolean checked = prefs.getBoolean("chkbox01", false);
68
+
69
+
70
+
71
+ final CheckBox chkbox01 = findViewById(R.id.checkbox01);
72
+
73
+ chkbox01.setChecked(checked);
74
+
75
+
76
+
77
+ // 読み込んだ値に応じて文字列の初期状態をセット
78
+
79
+ if (!checked) {
80
+
81
+ chkbox01.setText("未チェックです。");
82
+
83
+ } else {
84
+
85
+ chkbox01.setText("チェック済です。");
86
+
87
+ }
88
+
89
+
90
+
91
+ chkbox01.setOnClickListener(new View.OnClickListener() {
92
+
93
+ @Override
94
+
95
+ public void onClick(View view) {
96
+
97
+ // チェック状態を取得
98
+
99
+ final boolean checked = chkbox01.isChecked();
100
+
101
+
102
+
103
+ // SharedPreferencesに書き込み
104
+
105
+ SharedPreferences.Editor editor = prefs.edit();
106
+
107
+ editor.putBoolean("chkbox01", checked);
108
+
109
+ editor.apply();
110
+
111
+
112
+
113
+ if (!checked) {
114
+
115
+ chkbox01.setText("未チェックです。");
116
+
117
+ } else {
118
+
119
+ chkbox01.setText("チェック済です。");
120
+
121
+ }
122
+
123
+ }
124
+
125
+ });
126
+
127
+ }
128
+
129
+ ```
130
+
131
+
132
+
133
+ SharedPreferencesの詳しい使い方は検索すれば情報がたくさん出てきますので、そちらを参照してください。