我在我的活動中有一個微調控件,它允許用戶選擇一個列表名稱。如何在android中彈出列表而不需要微調框?
通常,微調器的功能是在列表之間切換,但對於一些實例,我換出選擇更改偵聽器以使用相同的選項列表執行不同的功能。一旦選擇完成,老的聽衆就會恢復,生活就會繼續。
這是一個糟糕的錯誤安排。相反,我想有一個函數只需要一個選擇監聽器和一些其他參數,並顯示一個彈出列表,該列表由同一個遊標(或同一個遊標)填充爲微調器,而不使用微調器本身。
有什麼辦法可以做到這一點?
我在我的活動中有一個微調控件,它允許用戶選擇一個列表名稱。如何在android中彈出列表而不需要微調框?
通常,微調器的功能是在列表之間切換,但對於一些實例,我換出選擇更改偵聽器以使用相同的選項列表執行不同的功能。一旦選擇完成,老的聽衆就會恢復,生活就會繼續。
這是一個糟糕的錯誤安排。相反,我想有一個函數只需要一個選擇監聽器和一些其他參數,並顯示一個彈出列表,該列表由同一個遊標(或同一個遊標)填充爲微調器,而不使用微調器本身。
有什麼辦法可以做到這一點?
使用AlertDialog.Builder
並通過setAdapter()
提供一個Adapter
來生成您的行。
在你的情況,我也不會使用相同的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();
真棒!正是我需要的。 – Jesse 2012-02-21 15:33:27
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();
我不知道的AlertDialog.Builder有這樣的功能。謝謝你的提示。如果我能解決問題,我會接受你的答案。 – CodeFusionMobile 2010-01-26 06:28:36