本文实例讲述了AndroID中AlertDialog显示简单和复杂列表的方法。分享给大家供大家参考,具体如下:
AlertDialog 显示简单列表 setItems
import AndroID.app.Activity;import androID.app.AlertDialog;import androID.content.DialogInterface;import androID.os.Bundle;import androID.os.Handler;import androID.vIEw.VIEw;import androID.vIEw.VIEw.OnClickListener;import androID.Widget.button;public class ListDialogTest1extends Activityimplements OnClickListener{ private button btnListDialog; private String[] provinces =new String[] { "上海","北京","湖南","湖北","海南" }; /** Called when the activity is first created. */ @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); btnListDialog = (button) findVIEwByID(R.ID.btnListDialog); btnListDialog.setonClickListener(this); } @OverrIDe public voID onClick(VIEw v) { switch (v.getID()) { case R.ID.btnListDialog: showListDialog(); break; } } private voID showListDialog() { AlertDialog.Builder builder =new AlertDialog.Builder(this); builder.setTitle("请选择省份"); /** * 1、public Builder setItems(int itemsID,final OnClickListener * Listener) itemsID表示字符串数组的资源ID,该资源指定的数组会显示在列表中。 2、public Builder * setItems(CharSequence[] items,final OnClickListener Listener) * items表示用于显示在列表中的字符串数组 */ builder.setItems(provinces,new DialogInterface.OnClickListener() { @OverrIDe public voID onClick(DialogInterface dialog,int which) { /* * ad变量用final关键字定义,因为在隐式实现的Runnable接口 的run()方法中 需要访问final变量。 */ final AlertDialog ad =new AlertDialog.Builder( ListDialogTest1.this).setMessage( "你选择的是:" + which + ": " + provinces[which]).show(); Handler handler = new Handler(); Runnable runnable = new Runnable() { @OverrIDe public voID run() { // 调用AlertDialog类的dismiss()方法关闭对话框,也可以调用cancel()方法。 ad.dismiss(); } }; // 5秒后运行run()方法。 handler.postDelayed(runnable,5 * 1000); } }); builder.create().show(); }}
AlertDialog 显示复杂列表 setMultiChoiceItems
一、通过AlertDialog.Builder类的setMultiChoiceItems()方法可以创建列表对话框,方法如下:
1、 从资源文件中装载数据:
public Builder setMultiChoiceItems(int itemsID,boolean[]checkedItems,final OnMultiChoiceListener Listener)
2、从数据集中装载数据
public Builder setMultiChoiceItems(Cursor cursor,StringisCheckedColumn,String labelColumn,final OnMultiChoiceListenerListener)
3、从字符串数组中装载数据
public Builder setMultiChoiceItems(CharSequence[] items,boolean[] checkedItems,final OnMultiChoiceListener Listener)
import androID.app.Activity;import androID.app.AlertDialog;import androID.app.AlertDialog.Builder;import androID.content.DialogInterface;import androID.content.DialogInterface.OnMultiChoiceClickListener;import androID.graphics.color;import androID.os.Bundle;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.TextVIEw;public class DiaActivity extends Activity { /** Called when the activity is first created. */ private button btn; private TextVIEw tv; private String[] shuxing = { "字体颜色","字体大小" }; private boolean[] chuzhi = { false,false }; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); btn = (button) findVIEwByID(R.ID.button1); tv = (TextVIEw) findVIEwByID(R.ID.textVIEw1); btn.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { // Todo auto-generated method stub Builder b = new AlertDialog.Builder(DiaActivity.this); b.setTitle("gggggg"); b.setMultiChoiceItems(shuxing,chuzhi,new DialogInterface.OnMultiChoiceClickListener() { @OverrIDe public voID onClick(DialogInterface dialog,int which,boolean isChecked) { switch (which) { case 0: chuzhi[0] = isChecked; break; case 1: chuzhi[1] = isChecked; break; default: break; } } }); b.setPositivebutton("确定",new DialogInterface.OnClickListener() { @OverrIDe public voID onClick(DialogInterface dialog,int which) { if (chuzhi[0] == true) { tv.setTextcolor(color.BLUE); } if (chuzhi[1] == true) { tv.setTextSize(50f); } } }); b.create().show(); } }); }}
二、通过AlertDialog.Builder类的setSingleChoiceItems方法可以创建带单按钮的列表:方法如下:
1、从资源文件中装载数据:
public Builder setSingleChoiceItems(int itemsID,intcheckedItem,final OnClickListener Listener)
2、从数据集中装载数据
public Builder setSingleChoiceItems(Cursor cursor,final OnClickListenerListener)
3、从字符串数组中装载数据
public Builder setSingleChoiceItems(CharSequence[] items,final OnClickListener Listener)
4、从listadapter对象中装载数据
public Builder setSingleChoiceItems(listadapter adpater,final OnClickListener Listener)
import androID.app.Activity;import androID.app.AlertDialog;import androID.content.DialogInterface;import androID.os.Bundle;import androID.os.Handler;import androID.vIEw.VIEw;import androID.vIEw.VIEw.OnClickListener;import androID.Widget.button;import androID.Widget.Toast;public class SingleChoiceItemsTest extends Activityimplements 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) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); btnSingleChoiceList = (button) findVIEwByID(R.ID.btnSingleChoice); btnSingleChoiceList.setonClickListener(this); } @OverrIDe public voID onClick(VIEw v) { showSingleChoicebutton(); } // 在单选选项中显示 确定和取消按钮 //buttonOnClickg变量的数据类型是buttonOnClick,一个单击事件类 private voID showSingleChoicebutton() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("请选择省份"); builder.setSingleChoiceItems(province,buttonOnClick); builder.setPositivebutton("确定",buttonOnClick); builder.setNegativebutton("取消",buttonOnClick); builder.show(); } private class buttonOnClick implements DialogInterface.OnClickListener { private int index; // 表示选项的索引 public buttonOnClick(int index) { this.index = index; } @OverrIDe public voID onClick(DialogInterface dialog,int which) { // which表示单击的按钮索引,所有的选项索引都是大于0,按钮索引都是小于0的。 if (which >= 0) { //如果单击的是列表项,将当前列表项的索引保存在index中。 //如果想单击列表项后关闭对话框,可在此处调用dialog.cancel() //或是用dialog.dismiss()方法。 index = which; } else { //用户单击的是【确定】按钮 if (which == DialogInterface.button_POSITIVE) { //显示用户选择的是第几个列表项。 final AlertDialog ad = new AlertDialog.Builder( SingleChoiceItemsTest.this).setMessage( "你选择的地区是:" + index + ":" + province[index]).show(); //五秒钟后自动关闭。 Handler hander = new Handler(); Runnable runnable = new Runnable() { @OverrIDe public voID run() { ad.dismiss(); } }; hander.postDelayed(runnable,5 * 1000); } //用户单击的是【取消】按钮 else if (which == DialogInterface.button_NEGATIVE) { Toast.makeText(SingleChoiceItemsTest.this,"你没有选择任何东西",Toast.LENGTH_LONG); } } } }}
更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体 *** 作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android中AlertDilog显示简单和复杂列表的方法全部内容,希望文章能够帮你解决Android中AlertDilog显示简单和复杂列表的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)