質問編集履歴

5

書式の改善

2016/09/04 12:01

投稿

ryochinn
ryochinn

スコア7

test CHANGED
File without changes
test CHANGED
@@ -34,6 +34,8 @@
34
34
 
35
35
 
36
36
 
37
+ ```ここに言語を入力
38
+
37
39
  package jp.androidbook.optionmenu;
38
40
 
39
41
 
@@ -192,12 +194,14 @@
192
194
 
193
195
  ```
194
196
 
195
-
196
-
197
197
  ```
198
198
 
199
199
 
200
200
 
201
+ ```
202
+
203
+
204
+
201
205
 
202
206
 
203
207
  ###試したこと

4

自分用のメモを削除

2016/09/04 12:01

投稿

ryochinn
ryochinn

スコア7

test CHANGED
File without changes
test CHANGED
@@ -34,10 +34,6 @@
34
34
 
35
35
 
36
36
 
37
- ```ここに言語を入力
38
-
39
- ```ここに言語を入力
40
-
41
37
  package jp.androidbook.optionmenu;
42
38
 
43
39
 
@@ -66,21 +62,15 @@
66
62
 
67
63
  public class MainActivity extends AppCompatActivity {
68
64
 
69
- static final String MENU_ITEM = "menu item";
65
+
70
-
71
-
72
66
 
73
67
  static final String CHECKBOX_TEST = "checkbox button";
74
68
 
75
- //文字stringを用いて、"menu item"という文字をプログラム内でMENU_ITEMとして表記
69
+
76
-
77
- int selectedItem = 0;
78
-
79
- //ラジオボタンの選択された選択肢の番号を保管するint
80
70
 
81
71
  boolean[] selectedItems = {false, false, false};
82
72
 
83
- //チェックボックスの選ばれた選択肢がどちらかを保管するboolean
73
+
84
74
 
85
75
 
86
76
 
@@ -116,9 +106,7 @@
116
106
 
117
107
 
118
108
 
119
- //オプションメニューの作成 menu.addで加えたものが文字として出る
109
+
120
-
121
- //public boolean onCreateOptionsMenu(Menu menu)はjava内で作るオプションメニュー
122
110
 
123
111
  @Override
124
112
 

3

チェックボックス式ダイアログ以外のコードを削除しました。

2016/09/04 11:59

投稿

ryochinn
ryochinn

スコア7

test CHANGED
File without changes
test CHANGED
@@ -10,6 +10,8 @@
10
10
 
11
11
  何卒宜しくお願い致します。
12
12
 
13
+ 追記:チェックボックス以外の部分はすべて削除しました。
14
+
13
15
  ![イメージ説明](232ba5accbbf4c86792c782fff546255.jpeg)
14
16
 
15
17
  ###発生している問題・エラーメッセージ
@@ -34,6 +36,8 @@
34
36
 
35
37
  ```ここに言語を入力
36
38
 
39
+ ```ここに言語を入力
40
+
37
41
  package jp.androidbook.optionmenu;
38
42
 
39
43
 
@@ -64,21 +68,19 @@
64
68
 
65
69
  static final String MENU_ITEM = "menu item";
66
70
 
67
- static final String BUTTON_TEST = "button";
71
+
68
-
69
- static final String RADIOBUTTON_TEST = "radio button";
70
72
 
71
73
  static final String CHECKBOX_TEST = "checkbox button";
72
74
 
73
-
75
+ //文字stringを用いて、"menu item"という文字をプログラム内でMENU_ITEMとして表記
74
76
 
75
77
  int selectedItem = 0;
76
78
 
77
-
79
+ //ラジオボタンの選択された選択肢の番号を保管するint
78
80
 
79
81
  boolean[] selectedItems = {false, false, false};
80
82
 
81
-
83
+ //チェックボックスの選ばれた選択肢がどちらかを保管するboolean
82
84
 
83
85
 
84
86
 
@@ -104,11 +106,7 @@
104
106
 
105
107
  getMenuInflater().inflate(R.menu.menu_main, menu);
106
108
 
107
- menu.add(MENU_ITEM);
109
+
108
-
109
- menu.add(BUTTON_TEST);
110
-
111
- menu.add(RADIOBUTTON_TEST);
112
110
 
113
111
  menu.add(CHECKBOX_TEST);
114
112
 
@@ -118,17 +116,23 @@
118
116
 
119
117
 
120
118
 
121
-
119
+ //オプションメニューの作成 menu.addで加えたものが文字として出る
120
+
121
+ //public boolean onCreateOptionsMenu(Menu menu)はjava内で作るオプションメニュー
122
122
 
123
123
  @Override
124
124
 
125
125
  public boolean onOptionsItemSelected(MenuItem item) {
126
126
 
127
+
128
+
129
+
130
+
127
- if (MENU_ITEM.equals(item.getTitle())) {
131
+ if (CHECKBOX_TEST.contentEquals(getTitle())) {
128
-
129
-
130
-
132
+
131
- final Activity list = this;
133
+ final Activity activity = this;
134
+
135
+
132
136
 
133
137
  AlertDialog.Builder builder = new AlertDialog.Builder(this);
134
138
 
@@ -136,220 +140,58 @@
136
140
 
137
141
  final String[] items = {"ONE", "TWO", "THREE"};
138
142
 
139
- builder.setItems(items,
143
+ builder.setMultiChoiceItems( (CharSequence[])items, selectedItems,
140
-
144
+
141
- new DialogInterface.OnClickListener() {
145
+ new DialogInterface.OnMultiChoiceClickListener() {
142
-
143
-
144
146
 
145
147
  @Override
146
148
 
147
- public void onClick(DialogInterface dialogInterface, int i) {
149
+ public void onClick(DialogInterface dialogInterface, int i,
148
-
149
- Toast toast = Toast.makeText(list, items[i] + "を選択しました",
150
+
150
-
151
- Toast.LENGTH_LONG);
152
-
153
- toast.show();
151
+ boolean checked) {
152
+
153
+ selectedItems[i] = checked;
154
+
155
+
154
156
 
155
157
  }
156
158
 
157
159
  });
158
160
 
161
+ builder.setPositiveButton("OK!", new DialogInterface.OnClickListener() {
162
+
163
+ @Override
164
+
165
+ public void onClick(DialogInterface dialogInterface, int item) {
166
+
167
+ String result = "";
168
+
169
+ for (int i = 0; i < selectedItems.length; i++) {
170
+
171
+ if (selectedItems[i]) {
172
+
173
+ result += "".equals(result) ? "" : ",";
174
+
175
+ result += items[i];
176
+
177
+ }
178
+
179
+ }
180
+
181
+ Toast toast = Toast.makeText(activity, result + "を選択しました",
182
+
183
+ Toast.LENGTH_LONG);
184
+
185
+ toast.show();
186
+
187
+ }
188
+
189
+ });
190
+
159
191
  builder.show();
160
192
 
161
193
  }
162
194
 
163
-
164
-
165
- //リスト表示するAlertDialog
166
-
167
- else if (BUTTON_TEST.equals(item.getTitle())) {
168
-
169
- final Activity activity = this;
170
-
171
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
172
-
173
- builder.setTitle("ボタンオプション");
174
-
175
- builder.setMessage("アラートダイアログのボタン");
176
-
177
- builder.setPositiveButton("OK!",
178
-
179
- new DialogInterface.OnClickListener() {
180
-
181
- @Override
182
-
183
- public void onClick(DialogInterface dialogInterface, int i) {
184
-
185
- Toast toast = Toast.makeText(activity, "ダイアログを閉じました",
186
-
187
- Toast.LENGTH_LONG);
188
-
189
- toast.show();
190
-
191
- }
192
-
193
- });
194
-
195
- builder.setNegativeButton("NO!",
196
-
197
- new DialogInterface.OnClickListener() {
198
-
199
- @Override
200
-
201
- public void onClick(DialogInterface dialogInterface, int i) {
202
-
203
- Toast toast = Toast.makeText(activity, "キャンセルしました",
204
-
205
- Toast.LENGTH_LONG);
206
-
207
- toast.show();
208
-
209
- }
210
-
211
- });
212
-
213
- builder.show();
214
-
215
- }
216
-
217
- //ボタン式のalertDialog
218
-
219
-
220
-
221
- else if (RADIOBUTTON_TEST.equals(item.getTitle())) {
222
-
223
- final Activity activity = this;
224
-
225
-
226
-
227
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
228
-
229
- builder.setTitle("選択してください");
230
-
231
- final String[] items = {"ONE", "TWO", "THREE"};
232
-
233
- builder.setSingleChoiceItems(items, 0,
234
-
235
- new DialogInterface.OnClickListener() { //●
236
-
237
- //
238
-
239
- @Override
240
-
241
- public void onClick(DialogInterface dialogInterface, int i) {
242
-
243
-
244
-
245
- selectedItem = i;
246
-
247
-
248
-
249
- Toast toast = Toast.makeText(activity, items[i] + "でいいですか?",
250
-
251
- //itemsの中のi番目を指す(selectedItemを入れても変わらない?)
252
-
253
- Toast.LENGTH_SHORT);
254
-
255
- toast.show();
256
-
257
- }
258
-
259
- });
260
-
261
- builder.setPositiveButton("OK!", new DialogInterface.OnClickListener() {
262
-
263
- @Override
264
-
265
- public void onClick(DialogInterface dialogInterface, int i) {
266
-
267
- Toast toast = Toast.makeText(activity,
268
-
269
- items[selectedItem] + "を選択しました",
270
-
271
- Toast.LENGTH_LONG);
272
-
273
- toast.show();
274
-
275
- }
276
-
277
- });
278
-
279
- builder.show();
280
-
281
- }
282
-
283
-
284
-
285
- //チェックボックス式のダイアログボックス
286
-
287
-
288
-
289
- else if (CHECKBOX_TEST.equals(getTitle())) {
290
-
291
- final Activity activity = this;
292
-
293
-
294
-
295
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
296
-
297
- builder.setTitle("選択してください");
298
-
299
- final String[] items = {"ONE", "TWO", "THREE"};
300
-
301
- builder.setMultiChoiceItems( items, selectedItems,
302
-
303
- new DialogInterface.OnMultiChoiceClickListener() {
304
-
305
- @Override
306
-
307
- public void onClick(DialogInterface dialogInterface, int i,
308
-
309
- boolean checked) {
310
-
311
- selectedItems[i] = checked;
312
-
313
-
314
-
315
- }
316
-
317
- });
318
-
319
- builder.setPositiveButton("OK!", new DialogInterface.OnClickListener() {
320
-
321
- @Override
322
-
323
- public void onClick(DialogInterface dialogInterface, int item) {
324
-
325
- String result = "";
326
-
327
- for (int i = 0; i < selectedItems.length; i++) {
328
-
329
- if (selectedItems[i]) {
330
-
331
- result += "".equals(result) ? "" : ",";
332
-
333
- result += items[i];
334
-
335
- }
336
-
337
- }
338
-
339
- Toast toast = Toast.makeText(activity, result + "を選択しました",
340
-
341
- Toast.LENGTH_LONG);
342
-
343
- toast.show();
344
-
345
- }
346
-
347
- });
348
-
349
- builder.show();
350
-
351
- }
352
-
353
195
  return super.onOptionsItemSelected(item);
354
196
 
355
197
 
@@ -364,6 +206,10 @@
364
206
 
365
207
 
366
208
 
209
+ ```
210
+
211
+
212
+
367
213
 
368
214
 
369
215
  ###試したこと

2

画像を追加しました。この状態でcheckbox buttonをおしてもダイアログが出ないという意味です

2016/09/04 11:46

投稿

ryochinn
ryochinn

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,3 @@
1
- ###前提・実現したいこと
2
-
3
1
  androidstudioを使用してJavaの勉強を始めて3日目の初心者です。
4
2
 
5
3
  現在、書籍を見ながらAlertDialogをオプションメニューに組み込んでみたのですが、
@@ -12,6 +10,8 @@
12
10
 
13
11
  何卒宜しくお願い致します。
14
12
 
13
+ ![イメージ説明](232ba5accbbf4c86792c782fff546255.jpeg)
14
+
15
15
  ###発生している問題・エラーメッセージ
16
16
 
17
17
 

1

コードの部分修正しました

2016/09/04 10:53

投稿

ryochinn
ryochinn

スコア7

test CHANGED
File without changes
test CHANGED
@@ -32,6 +32,8 @@
32
32
 
33
33
 
34
34
 
35
+ ```ここに言語を入力
36
+
35
37
  package jp.androidbook.optionmenu;
36
38
 
37
39
 
@@ -358,6 +360,8 @@
358
360
 
359
361
 
360
362
 
363
+ ```
364
+
361
365
 
362
366
 
363
367