どのようにアンドロイドでスピナーのないスピナーのようなポップアップリストへ?

StackOverflow https://stackoverflow.com/questions/2129624

質問

私は、ユーザーがリスト名を選択することができます、私の活動のスピナーウィジェットを持っています。

通常、スピナーの機能がリスト間ではなくインスタンスのカップルのために切り替えることで、私はオプションの同じリストで異なる機能を実行するために選択変更リスナーをスワップアウト。選択が行われた後、古いリスナーが復元され、人生が進むされます。

これは悪いとバギー配置です。代わりに、私はちょうどスピナー自体を使用せずに、スピナーと同じカーソル(または同一カーソル)によって移入のポップアップリストを選択リスナーを取り、いくつかの他のパラメータやショーという機能を持っていると思います。

私はこれを行うことができます方法はありますか?

役に立ちましたか?

解決

使用AlertDialog.Builderとあなたの行を生成Adapter経由setAdapter()を供給します。

Cursorは、現在の行の固有の概念を有しており、それはあなたのCursorによって使用されている間CursorいじりするSpinnerAdapterを台無しに可能性として

はあなたのケースでは、私は、同じSpinnerを使用しないであろう。同じCursorで行きます。

他のヒント

このは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();

あなたは、APIレベルで制限されていない場合は11、その後 listPopupWindow のですあなたが望むものに近いです。

            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();

あなたが使用することをお勧めしますのPopupMenuする

このの例を参照

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top