2024年4月1日发(作者:)

android 显示单选列表对话框 gleChoiceItems

通过r类的setSingleChoiceItems方法可以创建带单按钮的列

表:方法如下:1、从资源文件中装载数据:public Builder setSingleChoiceItems(int

itemsId, int checkedItem, final OnClickListener listener)2、从数据集中装载数据public

Builder setSingleChoiceItems(Cursor cursor, int checkedItem, String labelColumn,

final OnClickListener listener)3、从字符串数组中装载数据public Builder

setSingleChoiceItems(CharSequence[] items, int checkedItem, final

OnClickListener listener)4、从ListAdapter对象中装载数据public Builder

setSingleChoiceItems(ListAdapter adpater, int checkedItem, final OnClickListener

listener) package choiceitemstest; import

ty;import ialog;import

Interface;import ;import

r;import ;import

kListener;import ;import

; public class SingleChoiceItemsTest extends Activity

implements OnClickListener{ private String[] province = new String[] { "上海", "

北京", "湖南", "湖北", "海南" }; private Button btnSingleChoiceList; // 单击事

件对象的实例 private ButtonOnClick buttonOnClick = new ButtonOnClick(1);

/** Called when the activity is first created. */ @Override public void

onCreate(Bundle savedInstanceState)

{ te(savedInstanceState);

setContentView(); btnSingleChoiceList = (Button)

findViewById(gleChoice);

lickListener(this); } @Override public void

onClick(View v) { showSingleChoiceButton(); } // 在单选选项中显

示 确定和取消按钮 //buttonOnClickg变量的数据类型是ButtonOnClick,一个单击

事件类 private void showSingleChoiceButton() { r

builder = new r(this); le("请选择省份");

gleChoiceItems(province, 0, buttonOnClick);

itiveButton("确定", buttonOnClick);

ativeButton("取消", buttonOnClick); (); }

private class ButtonOnClick implements kListener

{ private int index; // 表示选项的索引 public ButtonOnClick(int

index) { = index; } @Override

public void onClick(DialogInterface dialog, int which) { // which

表示单击的按钮索引,所有的选项索引都是大于0,按钮索引都是小于0的。 if

(which >= 0) { //如果单击的是列表项,将当前列表项的索

引保存在index中。 //如果想单击列表项后关闭对话框,可在此处调用

() //或是用s()方法。 index =

which; } else { //用户单击的是【确定】

按钮 if (which == _POSITIVE)

{ //显示用户选择的是第几个列表项。 final

AlertDialog ad = new

r( ).setMes

sage( "你选择的地区是:" + index + ":" +

province[index]).show(); //五秒钟后自动关闭。

Handler hander = new Handler(); Runnable runnable = new

Runnable() { @Override

public void run()

{ s(); } };

layed(runnable, 5 * 1000); } //用户单击

的是【取消】按钮 else if (which == _NEGATIVE)

{ xt(, "你没有选择任何东

西",

_LONG); } } } }}