Android中AlertDilog显示简单和复杂列表的方法
本文实例讲述了Android中AlertDialog显示简单和复杂列表的方法。分享给大家供大家参考,具体如下:
AlertDialog显示简单列表setItems
importAndroid.app.Activity; importandroid.app.AlertDialog; importandroid.content.DialogInterface; importandroid.os.Bundle; importandroid.os.Handler; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; publicclassListDialogTest1extendsActivityimplementsOnClickListener { privateButtonbtnListDialog; privateString[]provinces=newString[]{"上海","北京","湖南","湖北","海南"}; /**Calledwhentheactivityisfirstcreated.*/ @Override publicvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnListDialog=(Button)findViewById(R.id.btnListDialog); btnListDialog.setOnClickListener(this); } @Override publicvoidonClick(Viewv) { switch(v.getId()) { caseR.id.btnListDialog: showListDialog(); break; } } privatevoidshowListDialog() { AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setTitle("请选择省份"); /** *1、publicBuildersetItems(intitemsId,finalOnClickListener *listener)itemsId表示字符串数组的资源ID,该资源指定的数组会显示在列表中。2、publicBuilder *setItems(CharSequence[]items,finalOnClickListenerlistener) *items表示用于显示在列表中的字符串数组 */ builder.setItems(provinces,newDialogInterface.OnClickListener() { @Override publicvoidonClick(DialogInterfacedialog,intwhich) { /* *ad变量用final关键字定义,因为在隐式实现的Runnable接口的run()方法中需要访问final变量。 */ finalAlertDialogad=newAlertDialog.Builder( ListDialogTest1.this).setMessage( "你选择的是:"+which+":"+provinces[which]).show(); Handlerhandler=newHandler(); Runnablerunnable=newRunnable() { @Override publicvoidrun() { //调用AlertDialog类的dismiss()方法关闭对话框,也可以调用cancel()方法。 ad.dismiss(); } }; //5秒后运行run()方法。 handler.postDelayed(runnable,5*1000); } }); builder.create().show(); } }
AlertDialog显示复杂列表setMultiChoiceItems
一、通过AlertDialog.Builder类的setMultiChoiceItems()方法可以创建列表对话框,方法如下:
1、从资源文件中装载数据:
publicBuildersetMultiChoiceItems(intitemsId,boolean[]checkedItems,finalOnMultiChoiceListenerlistener)
2、从数据集中装载数据
publicBuildersetMultiChoiceItems(Cursorcursor,StringisCheckedColumn,StringlabelColumn,finalOnMultiChoiceListenerlistener)
3、从字符串数组中装载数据
publicBuildersetMultiChoiceItems(CharSequence[]items,boolean[]checkedItems,finalOnMultiChoiceListenerlistener)
importandroid.app.Activity; importandroid.app.AlertDialog; importandroid.app.AlertDialog.Builder; importandroid.content.DialogInterface; importandroid.content.DialogInterface.OnMultiChoiceClickListener; importandroid.graphics.Color; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.Button; importandroid.widget.TextView; publicclassDiaActivityextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ privateButtonbtn; privateTextViewtv; privateString[]shuxing={"字体颜色","字体大小"}; privateboolean[]chuzhi={false,false}; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); btn=(Button)findViewById(R.id.button1); tv=(TextView)findViewById(R.id.textView1); btn.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub Builderb=newAlertDialog.Builder(DiaActivity.this); b.setTitle("gggggg"); b.setMultiChoiceItems(shuxing,chuzhi, newDialogInterface.OnMultiChoiceClickListener(){ @Override publicvoidonClick(DialogInterfacedialog, intwhich,booleanisChecked){ switch(which){ case0: chuzhi[0]=isChecked; break; case1: chuzhi[1]=isChecked; break; default: break; } } }); b.setPositiveButton("确定", newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog, intwhich){ if(chuzhi[0]==true){ tv.setTextColor(Color.BLUE); } if(chuzhi[1]==true){ tv.setTextSize(50f); } } }); b.create().show(); } }); } }
二、通过AlertDialog.Builder类的setSingleChoiceItems方法可以创建带单按钮的列表:方法如下:
1、从资源文件中装载数据:
publicBuildersetSingleChoiceItems(intitemsId,intcheckedItem,finalOnClickListenerlistener)
2、从数据集中装载数据
publicBuildersetSingleChoiceItems(Cursorcursor,intcheckedItem,StringlabelColumn,finalOnClickListenerlistener)
3、从字符串数组中装载数据
publicBuildersetSingleChoiceItems(CharSequence[]items,intcheckedItem,finalOnClickListenerlistener)
4、从ListAdapter对象中装载数据
publicBuildersetSingleChoiceItems(ListAdapteradpater,intcheckedItem,finalOnClickListenerlistener)
importandroid.app.Activity; importandroid.app.AlertDialog; importandroid.content.DialogInterface; importandroid.os.Bundle; importandroid.os.Handler; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.Toast; publicclassSingleChoiceItemsTestextendsActivityimplementsOnClickListener { privateString[]province=newString[]{"上海","北京","湖南","湖北","海南"}; privateButtonbtnSingleChoiceList; //单击事件对象的实例 privateButtonOnClickbuttonOnClick=newButtonOnClick(1); /**Calledwhentheactivityisfirstcreated.*/ @Override publicvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnSingleChoiceList=(Button)findViewById(R.id.btnSingleChoice); btnSingleChoiceList.setOnClickListener(this); } @Override publicvoidonClick(Viewv) { showSingleChoiceButton(); } //在单选选项中显示确定和取消按钮 //buttonOnClickg变量的数据类型是ButtonOnClick,一个单击事件类 privatevoidshowSingleChoiceButton() { AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setTitle("请选择省份"); builder.setSingleChoiceItems(province,0,buttonOnClick); builder.setPositiveButton("确定",buttonOnClick); builder.setNegativeButton("取消",buttonOnClick); builder.show(); } privateclassButtonOnClickimplementsDialogInterface.OnClickListener { privateintindex;//表示选项的索引 publicButtonOnClick(intindex) { this.index=index; } @Override publicvoidonClick(DialogInterfacedialog,intwhich) { //which表示单击的按钮索引,所有的选项索引都是大于0,按钮索引都是小于0的。 if(which>=0) { //如果单击的是列表项,将当前列表项的索引保存在index中。 //如果想单击列表项后关闭对话框,可在此处调用dialog.cancel() //或是用dialog.dismiss()方法。 index=which; } else { //用户单击的是【确定】按钮 if(which==DialogInterface.BUTTON_POSITIVE) { //显示用户选择的是第几个列表项。 finalAlertDialogad=newAlertDialog.Builder( SingleChoiceItemsTest.this).setMessage( "你选择的地区是:"+index+":"+province[index]).show(); //五秒钟后自动关闭。 Handlerhander=newHandler(); Runnablerunnable=newRunnable() { @Override publicvoidrun() { ad.dismiss(); } }; hander.postDelayed(runnable,5*1000); } //用户单击的是【取消】按钮 elseif(which==DialogInterface.BUTTON_NEGATIVE) { Toast.makeText(SingleChoiceItemsTest.this,"你没有选择任何东西", Toast.LENGTH_LONG); } } } } }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。