1. ホーム
  2. android

Android Spinnerをポップアップとして作成する方法を教えてください。

2023-11-01 10:07:48

質問

ユーザーがメニュー項目をタップしたときにスピナーダイアログを表示し、項目を選択できるようにしたい。

このために別のダイアログが必要でしょうか、それともスピナーを直接使用できますか? なるほど というリンクがあります。 はMODE_DIALOGオプションに言及していますが、もう定義されていないようです。AlertDialogはOKかもしれませんが、すべてのオプションは、"リスト内のアイテムをクリックしてもダイアログを解除しない"と言っており、これは私が望むものです。何か提案はありますか?

理想的には、スピナーが画面に表示される場合と同様のコードになります。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(activity,
     android.R.layout.simple_spinner_item, items);              
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
myspinner.setAdapter(adapter);  
// myspinner.showAsDialog() <-- what i want             

どのように解決するのですか?

アラートダイアログを使用することができます。

    AlertDialog.Builder b = new Builder(this);
    b.setTitle("Example");
    String[] types = {"By Zip", "By Category"};
    b.setItems(types, new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {

            dialog.dismiss();
            switch(which){
            case 0:
                onZipRequested();
                break;
            case 1:
                onCategoryRequested();
                break;
            }
        }

    });

    b.show();

このようにすると、どちらかが押されたときにダイアログが閉じます。 これが役に立つといいのですが。