androidstudioを使用してJavaの勉強を始めて3日目の初心者です。
現在、書籍を見ながらAlertDialogをオプションメニューに組み込んでみたのですが、
どうしてもチェックボックス式のダイアログボックスのみ起動しません。
どうしてなのか教えていただけると幸いです。
また、こうしたほうが良い等あれば、合わせてお教えしていただけるとありがたいです。
何卒宜しくお願い致します。
追記:チェックボックス以外の部分はすべて削除しました。
###発生している問題・エラーメッセージ
チェックボックス式のAlertDialogが反応しない。
(ボタンは表示されるが、押してもAlertDialogがでてこない)
エラーメッセージ
特に表示されてないと思います
###該当のソースコード
Java
package jp.androidbook.optionmenu; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends AppCompatActivity { static final String CHECKBOX_TEST = "checkbox button"; boolean[] selectedItems = {false, false, false}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); menu.add(CHECKBOX_TEST); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { if (CHECKBOX_TEST.contentEquals(getTitle())) { final Activity activity = this; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("選択してください"); final String[] items = {"ONE", "TWO", "THREE"}; builder.setMultiChoiceItems( (CharSequence[])items, selectedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i, boolean checked) { selectedItems[i] = checked; } }); builder.setPositiveButton("OK!", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int item) { String result = ""; for (int i = 0; i < selectedItems.length; i++) { if (selectedItems[i]) { result += "".equals(result) ? "" : ","; result += items[i]; } } Toast toast = Toast.makeText(activity, result + "を選択しました", Toast.LENGTH_LONG); toast.show(); } }); builder.show(); } return super.onOptionsItemSelected(item); } }
###試したこと
実機でもGenymotionの仮想デバイスでも同様に動きませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答2件
あなたの回答
tips
プレビュー