どのようにアンドロイドでスピナーのないスピナーのようなポップアップリストへ?
質問
私は、ユーザーがリスト名を選択することができます、私の活動のスピナーウィジェットを持っています。
通常、スピナーの機能がリスト間ではなくインスタンスのカップルのために切り替えることで、私はオプションの同じリストで異なる機能を実行するために選択変更リスナーをスワップアウト。選択が行われた後、古いリスナーが復元され、人生が進むされます。
これは悪いとバギー配置です。代わりに、私はちょうどスピナー自体を使用せずに、スピナーと同じカーソル(または同一カーソル)によって移入のポップアップリストを選択リスナーを取り、いくつかの他のパラメータやショーという機能を持っていると思います。
私はこれを行うことができます方法はありますか?
解決
使用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する
このの例を参照
所属していません StackOverflow