6

私のアクティビティには、ユーザーがリスト名を選択できるスピナーウィジェットがあります。

通常、スピナーの機能はリストを切り替えることですが、いくつかの例では、選択変更リスナーを交換して、同じオプションのリストで別の機能を実行します。選択が行われると、古いリスナーが復元され、人生が続きます。

これは悪い、バグのある配置です。代わりに、スピナー自体を使用せずに、選択リスナーとその他のパラメーターを受け取り、スピナーと同じカーソル(または同じカーソル)が入力されたポップアップリストを表示する関数が必要です。

これを行う方法はありますか?

4

5 に答える 5

11

これは、AlertDialogやAlertDialog.Builderを使用したスピナーなどのポップアップの詳細の最良の例です。

        AlertDialog dialog;

         final CharSequence[] items = { "Item1", "Item2" };
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(title);
        builder.setItems(items, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int pos) {
            switch (pos) {
                case 0:
                              {
        Toast.makeText(this,"Clicked on:"+items[pos],Toast.LENGTH_SHORT).show();

                      }break;
            case 1:
                              {
        Toast.makeText(this,"Clicked on:"+items[pos],Toast.LENGTH_SHORT).show();

                      }break;
        }
    }});
dialog=builder.create();
dialog.show();
于 2011-10-03T13:53:51.880 に答える
9

行を生成するビアを使用AlertDialog.Builderして提供します。AdaptersetAdapter()

あなたの場合、私は同じCursorを使用しません。なぜなら、aCursorは現在の行の本質的な概念を持っているので、Cursorあなたが使用している間にそれをいじると、を台無しにするSpinnerAdapter可能性があるからSpinnerです。同一のものを使用してCursorください。

于 2010-01-25T09:50:35.813 に答える
3

APIレベル11に制限されていない場合、 listPopupWindowは必要なものに近いです。

于 2012-03-22T04:01:30.723 に答える
1
            CharSequence[] items = {"Mangoes", "Bananas", "Grapes"};

            new AlertDialog.Builder(getActivity())
            .setTitle("Action")
            .setItems(items, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int item) {

                    if(item==0){
                      // Mangoes selected
                    }
                    else if(item==1){
                      // Bananas selected
                    }
                    else if(item==2){
                      // Grapes selected
                    }   
                }

            })
            .show();
于 2013-05-28T18:19:46.523 に答える
1

PopupMenuを使用することをお勧めします

この例を参照してください

于 2014-01-15T15:57:44.483 に答える