显示选择省份的三种列表对话框-列表对话框,单选列表对话框,多选列表对话框
来源:互联网 发布:淘宝联盟网站建设 编辑:程序博客网 时间:2024/06/05 11:54
简单列表对话框
通过AlertDialog.Builder类的setItems方法可以创建简单列表对话框,这种对话框相当于ListView控件放在了对话框中,然后在ListView中添加若干简单的文本。setItems方法的定义如下: public Builder setItems( int itemsId, final OnClickListener listener);
public Builder setItems( CharSequence[] items, final OnClickListener listener);
itemsId可以是字符串数组资源ID或者字符串数组变量,或值的方式
单选列表对话框
通过AlertDialog.Builder类的setSingleChoiceItems方法可以创建单选列表对话框
`public Builder setSingleChoiceItems( int itemsId, int checkedItem, final OnClickListener listener);
//从资源文件中装载
public Builder setSingleChoiceItems( CharSequence[] items, int checkedItem,final OnClickListener listener);
//从字符串数组中装载
public Builder setSingleChoiceItems( Cursor cursor,int checkedItem,String labelColumn,final OnClickListener listener);
//从数据集中装载,数据集中某一列会作为列表对话框的数据加载到列表框中。该参数表示该列的名称(字段名称)
`public Builder setSingleChoiceItems( ListAdapter adapter, int checkedItem,final OnClickListener listener);
//从ListAdapter中装载
多选列表对话框
通过AlertDialog.Builder类的setMultiChoiceItems方法可以创建多选列表对话框
`
1. public Builder setMultiChoiceItems(int itemId, boolean[] checkedItems, final OnMultiChoiceClickListener listener);
//从资源文件中装载
2. public Builder setMultiChoiceItems(Cursor cursor, String isCheckedColumn, String labelColumn ,final OnMultiChoiceClickListener listener);
//从数据集中装载
3. public Builder setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, final OnMultiChoiceClickListener listener);
//isCheckedColumn确定列表项是否被选中,“1” 表示选中,“0”表示未选中。
`
main.Javapackage net.blogjava.mobile;import android.annotation.SuppressLint;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ListView;public class Main extends Activity implements OnClickListener{ private String[] provinces = new String[] { "辽宁省", "安徽省", "河北省", "福建省", "广东省", "黑龙江省" }; //列表对话框的字符串数组资源 private ButtonOnClick buttonOnClick = new ButtonOnClick(1); //单击事件类的对象实例 private ListView lv = null; //用于保存多选列表对话框中的ListView对象 private void showListDialog() //用于显示简单列表对话框 { new AlertDialog.Builder(this).setTitle("选择省份").setItems(provinces, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { **final** AlertDialog ad = new AlertDialog.Builder( Main.this).setMessage( "您已经选择了: " + which + ":" + provinces[which]) .show(); android.os.Handler hander = new android.os.Handler(); // 设置定时器,5秒后调用run方法 hander.postDelayed(new Runnable() { @Override public void run() { ad.dismiss();//调用AlertDialog类的dismiss方法,也可以写成cancel方法。ad变量要用final的,因为在隐式实现的Runnable接口的run方法中需要访问final变量 } }, 5 * 1000); } }).show(); } private void showSingleChoiceDialog()// 用于显示单选列表对话框 { new AlertDialog.Builder(this).setTitle("选择省份").setSingleChoiceItems( provinces, 1, buttonOnClick).setPositiveButton("确定", buttonOnClick).setNegativeButton("取消", buttonOnClick).show(); } @SuppressLint("NewApi") private void showMultiChoiceDialog() { AlertDialog ad = new AlertDialog.Builder(this) .setIcon(R.drawable.image).setTitle("选择省份") .setMultiChoiceItems(provinces, new boolean[] { false, true, false, true, false, false }, //第三个参数必须指定单击事件对象,不能设置为null new DialogInterface.OnMultiChoiceClickListener() { public void onClick(DialogInterface dialog, int whichButton, boolean isChecked) { } }).setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { int count = lv.getCount(); String s = "您选择了:"; for (int i = 0; i < provinces.length; i++) { if (lv.getCheckedItemPositions().get(i)) s += i + ":" + lv.getAdapter().getItem(i) + " "; } //用户至少选择了一个列表项 if (lv.getCheckedItemPositions().size() > 0) { new AlertDialog.Builder(Main.this) .setMessage(s).show(); } else { new AlertDialog.Builder(Main.this) .setMessage("您未选择任何省份").show(); } } }).setNegativeButton("取消", null).create(); lv = ad.getListView(); ad.show(); } private class ButtonOnClick implements DialogInterface.OnClickListener { private int index; public ButtonOnClick(int index) { this.index = index; } @Override public void onClick(DialogInterface dialog, int whichButton) { //whichButton表示单击的按钮索引,所有列表项的索引都是大于等于0的,然而按钮的索引都是<0的! if (whichButton >= 0) { index = whichButton; //单击的是列表项 // dialog.cancel(); } else { if (whichButton == DialogInterface.BUTTON_POSITIVE) { //单击确定按钮 new AlertDialog.Builder(Main.this).setMessage( "您已经选择了: " + index + ":" + provinces[index]).show(); } else if (whichButton == DialogInterface.BUTTON_NEGATIVE) { new AlertDialog.Builder(Main.this).setMessage("您什么都未选择.") .show(); } } } } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btnListDialog: { showListDialog(); break; } case R.id.btnSingleChoiceDialog: { showSingleChoiceDialog(); break; } case R.id.btnMultiChoiceDialog: { showMultiChoiceDialog(); break; } } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnListDialog = (Button) findViewById(R.id.btnListDialog); Button btnSingleChoiceDialog = (Button) findViewById(R.id.btnSingleChoiceDialog); Button btnMultiChoiceDialog = (Button) findViewById(R.id.btnMultiChoiceDialog); btnListDialog.setOnClickListener(this); btnSingleChoiceDialog.setOnClickListener(this); btnMultiChoiceDialog.setOnClickListener(this); }}xml文件main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/btnListDialog" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="显示列表对话框" /> <Button android:id="@+id/btnSingleChoiceDialog" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="显示单选列表对话框" /> <Button android:id="@+id/btnMultiChoiceDialog" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="显示多选列表对话框" /></LinearLayout>
- 显示选择省份的三种列表对话框-列表对话框,单选列表对话框,多选列表对话框
- AlertDialog创建6种对话框的用法 (对话框,单选对话框,多选对话框,列表对话框,自定义对话框,退出对话框)
- Android简单对话框、输入对话框、单选对话框、复选对话框、列表对话框、自定义对话框、时间对话框
- Android-Dialog对话框 全解(普通对话框,单选对话框,多选对话框,列表对话框,自定义对话框,Activity对话框)
- 22.列表对话框AlertDialog.Builder:省份选择列表
- 对话框封装类(普通对话框,列表对话框,单选按钮对话框,复选对话框)
- 安卓通知的使用系列4:对话框通知的使用之列表对话框、单选列表对话框、多选列表对话框
- android 显示多选列表对话框setMultiChoiceItems
- android 显示多选列表对话框setMultiChoiceItems
- Android单选列表对话框builder.setSingleChoiceItems
- 使用AlertDialog创建单选列表对话框
- 使用AlertDialog创建单选列表对话框
- Android_单选列表项对话框
- Android单选、多选列表的对话框
- AlertDialog的列表对话框
- android 显示单选列表对话框 builder.setSingleChoiceItems
- android 显示单选列表对话框 builder.setSingleChoiceItems
- android 显示单选列表对话框 builder.setSingleChoiceItems
- Leetcode: Triangle
- 设计模式之十二:状态模式(State)
- [镜像制作]VMWare搭建Openstack——Virt-edit命令修改虚拟机镜像
- django如何使用restful风格
- UISprite扩展强化,减少游戏包大小功能及功能扩展【NGUI】
- 显示选择省份的三种列表对话框-列表对话框,单选列表对话框,多选列表对话框
- 单行函数
- 显示指定null值得位置
- [镜像制作]VMWare搭建Openstack——guestfish命令修改虚拟机镜像
- Python标准库:内置函数type(object)
- 关于 释放堆内存出错的 问题
- 战斗进行时
- [管理篇6]使用Linux Shell管理OpenStack的虚拟机——批量创建、开启、关闭虚拟机
- ASP.NET完整打包卸载更新攻略(By Installshield 2010)