[转载]Android开发教程 — 葵花宝典第六层 控件之 Dialog ListView GridView – Jason_CC – 博客园.
Hi 大家好!
今天和大家一起来学习三种控件,对话框、列表、网格视图。
这三种控件比较重要,使用率也比较频繁,相对来说也比前面所讲的控件复杂,希望大家多练习,熟练掌握它们。
照例,上笑话。
论坛楼主:帅有个屁用——到头来还不是被卒吃掉!
论坛回复:帅有士陪,有炮打,有马骑,有车坐,有相暗恋……帅怎么不好?!!
Dialog 对话框,它运行起来的效果是什么样呢?如下图
这种是最常用的对话框
当点击了上图的确定后,会弹此对话框,这种对话框属于自定义布局类型
当执行一些比较费时的操作时,用这种对话框是个不错的选择
当我们需要用户进行选择操作,又不能使用下来列表时,可以使用这种自定义布局的对话框
接下来我们就一起来看看这些通过代码是如何实现的?
<span class = "kwd" > package </span><span class = "pln" > TSD</span><span class = "pun" >.</span><span class = "typ" >Jason</span><span class = "pun" >.</span><span class = "typ" >Example</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >app</span><span class = "pun" >.</span><span class = "typ" >Activity</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >app</span><span class = "pun" >.</span><span class = "typ" >AlertDialog</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >app</span><span class = "pun" >.</span><span class = "typ" >ProgressDialog</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >app</span><span class = "pun" >.</span><span class = "typ" >AlertDialog</span><span class = "pun" >.</span><span class = "typ" >Builder</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >app</span><span class = "pun" >.</span><span class = "typ" >Dialog</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >content</span><span class = "pun" >.</span><span class = "typ" >DialogInterface</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >os</span><span class = "pun" >.</span><span class = "typ" >Bundle</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >view</span><span class = "pun" >.</span><span class = "typ" >LayoutInflater</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >view</span><span class = "pun" >.</span><span class = "typ" >View</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >widget</span><span class = "pun" >.</span><span class = "typ" >Button</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > /** * 对话框 * @author Administrator * 常用方法: * setTitle():给对话框设置title. setIcon():给对话框设置图标。 setMessage():设置对话框的提示信息 setItems():设置对话框要显示的一个list,一般用于要显示几个命令时 setSingleChoiceItems():设置对话框显示一个单选的List setMultiChoiceItems():用来设置对话框显示一系列的复选框。 setPositiveButton():给对话框添加”Yes”按钮。 setNegativeButton():给对话框添加”No”按钮。 * */ </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > class </span><span class = "pln" > </span><span class = "typ" >DialogActivity</span><span class = "pln" > </span><span class = "kwd" > extends </span><span class = "pln" > </span><span class = "typ" >Activity</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >Button</span><span class = "pln" > btn1</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "typ" >ProgressDialog</span><span class = "pln" > p</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > protected </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onCreate</span><span class = "pun" >(</span><span class = "typ" >Bundle</span><span class = "pln" > savedInstanceState</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > super </span><span class = "pun" >.</span><span class = "pln" >onCreate</span><span class = "pun" >(</span><span class = "pln" >savedInstanceState</span><span class = "pun" >);</span><span class = "pln" > setContentView</span><span class = "pun" >(</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >layout</span><span class = "pun" >.</span><span class = "pln" >diaolg</span><span class = "pun" >);</span><span class = "pln" > btn1 </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "pun" >(</span><span class = "typ" >Button</span><span class = "pun" >)</span><span class = "pln" >findViewById</span><span class = "pun" >(</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >id</span><span class = "pun" >.</span><span class = "pln" >btnDialog</span><span class = "pun" >);</span><span class = "pln" > btn1</span><span class = "pun" >.</span><span class = "pln" >setOnClickListener</span><span class = "pun" >(</span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >Button</span><span class = "pun" >.</span><span class = "typ" >OnClickListener</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onClick</span><span class = "pun" >(</span><span class = "typ" >View</span><span class = "pln" > v</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >Builder</span><span class = "pln" > dialog </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >AlertDialog</span><span class = "pun" >.</span><span class = "typ" >Builder</span><span class = "pun" >(</span><span class = "typ" >DialogActivity</span><span class = "pun" >.</span><span class = "kwd" > this </span><span class = "pun" >);</span><span class = "pln" > dialog</span><span class = "pun" >.</span><span class = "pln" >setTitle</span><span class = "pun" >(</span><span class = "str" > "登录提示" </span><span class = "pun" >);</span><span class = "pln" > dialog</span><span class = "pun" >.</span><span class = "pln" >setIcon</span><span class = "pun" >(</span><span class = "pln" >android</span><span class = "pun" >.</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >ic_dialog_info</span><span class = "pun" >);</span><span class = "pln" > dialog</span><span class = "pun" >.</span><span class = "pln" >setMessage</span><span class = "pun" >(</span><span class = "str" > "是否登录?" </span><span class = "pun" >);</span><span class = "pln" > dialog</span><span class = "pun" >.</span><span class = "pln" >setPositiveButton</span><span class = "pun" >(</span><span class = "str" > "确定" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >DialogInterface</span><span class = "pun" >.</span><span class = "typ" >OnClickListener</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onClick</span><span class = "pun" >(</span><span class = "typ" >DialogInterface</span><span class = "pln" > dialog</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pln" > which</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >ShowLoginDialog</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >});</span><span class = "pln" > dialog</span><span class = "pun" >.</span><span class = "pln" >setNegativeButton</span><span class = "pun" >(</span><span class = "str" > "取消" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >DialogInterface</span><span class = "pun" >.</span><span class = "typ" >OnClickListener</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onClick</span><span class = "pun" >(</span><span class = "typ" >DialogInterface</span><span class = "pln" > dialog</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pln" > which</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >DialogActivity</span><span class = "pun" >.</span><span class = "kwd" > this </span><span class = "pun" >.</span><span class = "pln" >finish</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >});</span><span class = "pln" > dialog</span><span class = "pun" >.</span><span class = "pln" >show</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >});</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span> |
以上代码是我们第一张对话框的效果实现代码,大家发现是不是挺简单,当我们单击确定按钮后,将调用一个叫做ShowLoginDialog的方法。
这个方法马上会贴出来,在这里我还是要强调下,大家在写代码的时候一定要有一个良好的编程思想,将功能拆分,降低代码的耦合度,一个方法只做一件事情,不要一股脑的将代码写到一个方法里。希望大家记得。
<span class = "kwd" > private </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > </span><span class = "typ" >ShowLoginDialog</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >Builder</span><span class = "pln" > builder </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >AlertDialog</span><span class = "pun" >.</span><span class = "typ" >Builder</span><span class = "pun" >(</span><span class = "typ" >DialogActivity</span><span class = "pun" >.</span><span class = "kwd" > this </span><span class = "pun" >);</span><span class = "pln" > builder</span><span class = "pun" >.</span><span class = "pln" >setTitle</span><span class = "pun" >(</span><span class = "str" > "用户登录" </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >LayoutInflater</span><span class = "pln" > factory </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "typ" >LayoutInflater</span><span class = "pun" >.</span><span class = "kwd" >from</span><span class = "pun" >(</span><span class = "typ" >DialogActivity</span><span class = "pun" >.</span><span class = "kwd" > this </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >View</span><span class = "pln" > dialogView </span><span class = "pun" >=</span><span class = "pln" > factory</span><span class = "pun" >.</span><span class = "pln" >inflate</span><span class = "pun" >(</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >layout</span><span class = "pun" >.</span><span class = "pln" >dialogview</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > null </span><span class = "pun" >);</span><span class = "pln" > builder</span><span class = "pun" >.</span><span class = "pln" >setView</span><span class = "pun" >(</span><span class = "pln" >dialogView</span><span class = "pun" >);</span><span class = "pln" > builder</span><span class = "pun" >.</span><span class = "pln" >setPositiveButton</span><span class = "pun" >(</span><span class = "str" > "确定" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >DialogInterface</span><span class = "pun" >.</span><span class = "typ" >OnClickListener</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onClick</span><span class = "pun" >(</span><span class = "typ" >DialogInterface</span><span class = "pln" > dialog</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pln" > which</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >DialogWait</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >});</span><span class = "pln" > builder</span><span class = "pun" >.</span><span class = "pln" >setNegativeButton</span><span class = "pun" >(</span><span class = "str" > "取消" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >DialogInterface</span><span class = "pun" >.</span><span class = "typ" >OnClickListener</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onClick</span><span class = "pun" >(</span><span class = "typ" >DialogInterface</span><span class = "pln" > dialog</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pln" > which</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >DialogActivity</span><span class = "pun" >.</span><span class = "kwd" > this </span><span class = "pun" >.</span><span class = "pln" >finish</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >});</span><span class = "pln" > builder</span><span class = "pun" >.</span><span class = "pln" >show</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span> |
上边被标注的代码是为了让Dialog中的内容部分显示我们自定义的布局文件,通过builder对象的setView方法就可以将R.layout.dialogview这个布局文件绑定到对话框中。
布局文件代码如下
< span class = "com" > <!--?xml version="1.0" encoding="utf-8"?--> </ span >< span class = "pln" > </ span > |
第三个等待效果的对话框是如何实现的呢?上边我们调用了一个方法叫做 DialogWait
<span class = "kwd" > private </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > </span><span class = "typ" >DialogWait</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > p </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "typ" >ProgressDialog</span><span class = "pun" >.</span><span class = "pln" >show</span><span class = "pun" >(</span><span class = "typ" >DialogActivity</span><span class = "pun" >.</span><span class = "kwd" > this </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "正在登录" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "请稍后..." </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > true </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >Thread</span><span class = "pun" >(){</span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > run</span><span class = "pun" >(){</span><span class = "pln" > </span><span class = "kwd" > try </span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >Thread</span><span class = "pun" >.</span><span class = "pln" >sleep</span><span class = "pun" >(</span><span class = "lit" > 2000 </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > catch </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "typ" >InterruptedException</span><span class = "pln" > e</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > // TODO Auto-generated catch block</span><span class="pln"> e</span><span class = "pun" >.</span><span class = "pln" >printStackTrace</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > finally </span><span class = "pun" >{</span><span class = "pln" > p</span><span class = "pun" >.</span><span class = "pln" >dismiss</span><span class = "pun" >();</span><span class = "com" > //登录结束后,取消对话框</span><span class="pln"> </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}.</span><span class = "pln" >start</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span> |
大家注意,此时的类就不在是AlertDialog,而是ProgressDialog。
上边代码我们为了测试看效果,所以开启了一个线程,并挂起2秒,这在以后项目中是不需要的,如果大家看不太懂,那么这里先跳过。
接下来我们来看看如何在对话框中嵌套一个ListView。
首先,需要一个布局文件,布局文件里只创建一个ListView,如下代码
< span class = "com" > <!--?xml version="1.0" encoding="utf-8"?--> </ span >< span class = "pln" > </ span > |
Java代码如下
<span class = "kwd" > private </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > </span><span class = "typ" >ShowLoginDialog</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >Builder</span><span class = "pln" > builder </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >AlertDialog</span><span class = "pun" >.</span><span class = "typ" >Builder</span><span class = "pun" >(</span><span class = "typ" >Tab1Activity</span><span class = "pun" >.</span><span class = "kwd" > this </span><span class = "pun" >);</span><span class = "pln" > builder</span><span class = "pun" >.</span><span class = "pln" >setTitle</span><span class = "pun" >(</span><span class = "str" > "选择城市" </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >LayoutInflater</span><span class = "pln" > factory </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "typ" >LayoutInflater</span><span class = "pun" >.</span><span class = "kwd" >from</span><span class = "pun" >(</span><span class = "typ" >Tab1Activity</span><span class = "pun" >.</span><span class = "kwd" > this </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >View</span><span class = "pln" > dialogView </span><span class = "pun" >=</span><span class = "pln" > factory</span><span class = "pun" >.</span><span class = "pln" >inflate</span><span class = "pun" >(</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >layout</span><span class = "pun" >.</span><span class = "pln" >dialogcity</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > null </span><span class = "pun" >);</span><span class = "pln" > listCity </span><span class = "pun" >=(</span><span class = "typ" >ListView</span><span class = "pun" >)</span><span class = "pln" >dialogView</span><span class = "pun" >.</span><span class = "pln" >findViewById</span><span class = "pun" >(</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >id</span><span class = "pun" >.</span><span class = "pln" >listCity</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >GetCity</span><span class = "pun" >();</span><span class = "pln" > builder</span><span class = "pun" >.</span><span class = "pln" >setView</span><span class = "pun" >(</span><span class = "pln" >dialogView</span><span class = "pun" >);</span><span class = "pln" > builder</span><span class = "pun" >.</span><span class = "pln" >show</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > private </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > </span><span class = "typ" >GetCity</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "kwd" >out</span><span class = "pun" >.</span><span class = "pln" >println</span><span class = "pun" >(</span><span class = "str" > "asd" </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >ArrayList</span><span class = "pun" >&</span><span class = "pln" >gt</span><span class = "pun" >;</span><span class = "pln" > listData </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >ArrayList</span><span class = "pun" >&</span><span class = "pln" >gt</span><span class = "pun" >;();</span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "city" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "北京" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "city" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "上海" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "city" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "深圳" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "city" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "天津" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "city" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "南京" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "city" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "武汉" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "city" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "江苏" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "city" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "宁波" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >SimpleAdapter</span><span class = "pln" > sim </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >SimpleAdapter</span><span class = "pun" >(</span><span class = "kwd" > this </span><span class = "pun" >,</span><span class = "pln" > listData</span><span class = "pun" >,</span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >layout</span><span class = "pun" >.</span><span class = "pln" >simple_list_item_1</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >String</span><span class = "pun" >[]{</span><span class = "str" > "city" </span><span class = "pun" >},</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pun" >[]{</span><span class = "pln" >android</span><span class = "pun" >.</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >id</span><span class = "pun" >.</span><span class = "pln" >text1</span><span class = "pun" >});</span><span class = "pln" > listCity</span><span class = "pun" >.</span><span class = "pln" >setAdapter</span><span class = "pun" >(</span><span class = "pln" >sim</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span> |
直接调用ShowLoginDialog方法即可。注意标注的代码,需要先获取ListView。这里已经用到了ListView,如果不太懂下边就将ListView,大家注意看。
ListView
上边已经展示过它运行的效果了,这里就不展示运行效果了。
那么要使用ListView需要哪些步骤呢?举一个例子,可能不太恰当
冰箱里没有鸡蛋了,我们从家里提了一个篮子去超市买鸡蛋。就是这样的一个过程。我们来分解下这个步骤
冰箱 == 展示数据 == ListView
超市里的鸡蛋 == 数据 == ArrayList 泛型集合
篮子 == 适配器 == SimpleAdapter
我们应该将 鸡蛋(ArrayList) 装到 篮子里(SimpleAdapter) 然后提回家 放到 冰箱里( ListView)
分解完步骤后,那么我们看看如何用代码实现这个过程。
ListView userList; //声明一个ListView对象(冰箱)
userList = (ListView)findViewById(R.id.listUserInfo); //获取布局文件中的ListView控件赋值给ListView对象
ArrayList> listData = new ArrayList>(); //数据源 (超市装鸡蛋的盒子)
HashMap hmItem = new HashMap(); //需要一个HashMap键值对 (每一个鸡蛋)
hmItem.put(“userName”, “张三”);
hmItem.put(“userPhone”, “1234567890”);
listData.add(hmItem); //将鸡蛋装到数据源中
String[] s = new String[2]; //列 和键值对中的键 一一对应 每个键值对应该是一样的列数
s[0] = “userName”;
s[1] = “userPhone”;
int[] i = new int[2]; //用什么控件来装载上边String集合中的列 和上边的String数组也是一一对应的
i[0] = Android.R.id.text1;
i[1] = Android.R.id.text2;
SimpleAdapter sim = new SimpleAdapter(this, listData, android.R.layout.simple_list_item_1, s, i); //这就是我们的篮子
userList.setAdapter(sim); //将篮子中的鸡蛋装到冰箱中 🙂
完整的代码如下
<span class = "kwd" > package </span><span class = "pln" > TSD</span><span class = "pun" >.</span><span class = "typ" >Jason</span><span class = "pun" >.</span><span class = "typ" >Example</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > java</span><span class = "pun" >.</span><span class = "pln" >util</span><span class = "pun" >.</span><span class = "typ" >ArrayList</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > java</span><span class = "pun" >.</span><span class = "pln" >util</span><span class = "pun" >.</span><span class = "typ" >HashMap</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > java</span><span class = "pun" >.</span><span class = "pln" >util</span><span class = "pun" >.</span><span class = "typ" >List</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >app</span><span class = "pun" >.</span><span class = "typ" >Activity</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >os</span><span class = "pun" >.</span><span class = "typ" >Bundle</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >view</span><span class = "pun" >.</span><span class = "typ" >View</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >widget</span><span class = "pun" >.</span><span class = "typ" >AdapterView</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >widget</span><span class = "pun" >.</span><span class = "typ" >ListView</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >widget</span><span class = "pun" >.</span><span class = "typ" >SimpleAdapter</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > /** * ListView基本使用方法 * * 使用ListView的基本步骤 * 1.准备ListView要显示的数据 ; * ArrayList> listData = new ArrayList>(); * * 2.使用 一维或多维 动态数组 保存数据; * HashMap hmItem = new HashMap(); hmItem.put("userName", "张三"); hmItem.put("userPhone", "1234567890"); * 3.构建适配器 , 简单地来说, 适配器就是 Item数组 , 动态数组 有多少元素就生成多少个Item; * SimpleAdapter simpleAdapter; * 数据绑定的类 * 参数解释 * * 第一个context,很明显大家根据英文可以知道是上下文的意思,它官方的意思是:SimpleAdapter所要运行关联到的视图,这个是什么呢?就是你这个SimpleAdapter所在的Activity(一般而言),所以这个参数一般是this 第二个是一个泛型只要是一个List就行,这一般会想到是ArrayList,而他内部存储的则是Map或者继承自Map的对象,比如HashMap,这些语法都是Java的基本语法,不再详述了!这里呢是作为数据源,而且每一个ArraList中的一行就代表着呈现出来的一行,Map的键就是这一行的列名,值也是有列名的。 第三个资源文件,就是说要加载这个两列所需要的视图资源文件,你可以左边一个TextView右边一个TextView,目的在于呈现左右两列的值! 第四个参数是一个数组,主要是将Map对象中的名称映射到列名,一一对应 第五个是将第四个参数的值一一对象的显示(一一对应)在接下来的int形的id数组中,这个id数组就是LayOut的xml文件中命名id形成的唯一的int型标识符 * context 关联SimpleAdapter运行着的视图的上下文。 data 一个Map的列表。在列表中的每个条目对应列表中的一行,应该包含所有在from中指定的条目 resource 一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应包含哪些在to中定义了的名称。 from 一个将被添加到Map上关联每一个项目的列名称的列表 to 应该在参数from显示列的视图。这些应该全是TextView。在列表中最初的N视图是从参数from中最初的N列获取的值。 * * 4.把 适配器 添加到ListView,并显示出来。 * @author Administrator * */ </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > class </span><span class = "pln" > </span><span class = "typ" >ListViewActivity</span><span class = "pln" > </span><span class = "kwd" > extends </span><span class = "pln" > </span><span class = "typ" >Activity</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >ListView</span><span class = "pln" > userList</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > protected </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onCreate</span><span class = "pun" >(</span><span class = "typ" >Bundle</span><span class = "pln" > savedInstanceState</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > super </span><span class = "pun" >.</span><span class = "pln" >onCreate</span><span class = "pun" >(</span><span class = "pln" >savedInstanceState</span><span class = "pun" >);</span><span class = "pln" > setContentView</span><span class = "pun" >(</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >layout</span><span class = "pun" >.</span><span class = "pln" >listview</span><span class = "pun" >);</span><span class = "pln" > userList </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "pun" >(</span><span class = "typ" >ListView</span><span class = "pun" >)</span><span class = "pln" >findViewById</span><span class = "pun" >(</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >id</span><span class = "pun" >.</span><span class = "pln" >listUserInfo</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >ArrayList</span><span class = "pun" >&</span><span class = "pln" >gt</span><span class = "pun" >;</span><span class = "pln" > listData </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >ArrayList</span><span class = "pun" >&</span><span class = "pln" >gt</span><span class = "pun" >;();</span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "userName" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "张三" </span><span class = "pun" >);</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "userPhone" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "1234567890" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "userName" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "李四" </span><span class = "pun" >);</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "userPhone" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "981234502" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > hmItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "userName" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "王五" </span><span class = "pun" >);</span><span class = "pln" > hmItem</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "userPhone" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "5622435566221" </span><span class = "pun" >);</span><span class = "pln" > listData</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >hmItem</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "com" > //SimpleAdapter simpleAdapter = new SimpleAdapter(this, listData, R.layout.textviewitem, new String[]{"userName","userPhone"}, new int[]{R.id.txtUserName,R.id.txtUserPhone});</span><span class="pln"> </span><span class = "com" > //SimpleAdapter simpleAdapter = new SimpleAdapter(this, listData, android.R.layout.simple_list_item_1, new String[]{"userName","userPhone"}, new int[]{android.R.id.text1,android.R.id.text2});</span><span class="pln"> </span><span class = "com" > //SimpleAdapter simpleAdapter = new SimpleAdapter(this, listData, android.R.layout.simple_list_item_2, new String[]{"userName","userPhone"}, new int[]{android.R.id.text1,android.R.id.text2});</span><span class="pln"> </span><span class = "typ" >String</span><span class = "pun" >[]</span><span class = "pln" > s </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >String</span><span class = "pun" >[</span><span class = "lit" > 2 </span><span class = "pun" >];</span><span class = "pln" > s</span><span class = "pun" >[</span><span class = "lit" > 0 </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "userName" </span><span class = "pun" >;</span><span class = "pln" > s</span><span class = "pun" >[</span><span class = "lit" > 1 </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "userPhone" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pun" >[]</span><span class = "pln" > i </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pun" >[</span><span class = "lit" > 2 </span><span class = "pun" >];</span><span class = "pln" > i</span><span class = "pun" >[</span><span class = "lit" > 0 </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >id</span><span class = "pun" >.</span><span class = "pln" >text1</span><span class = "pun" >;</span><span class = "pln" > i</span><span class = "pun" >[</span><span class = "lit" > 1 </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >id</span><span class = "pun" >.</span><span class = "pln" >text2</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "typ" >SimpleAdapter</span><span class = "pln" > sim </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >SimpleAdapter</span><span class = "pun" >(</span><span class = "kwd" > this </span><span class = "pun" >,</span><span class = "pln" > listData</span><span class = "pun" >,</span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >layout</span><span class = "pun" >.</span><span class = "pln" >simple_list_item_1</span><span class = "pun" >,</span><span class = "pln" > s</span><span class = "pun" >,</span><span class = "pln" > i</span><span class = "pun" >);</span><span class = "pln" > userList</span><span class = "pun" >.</span><span class = "pln" >setAdapter</span><span class = "pun" >(</span><span class = "pln" >sim</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "com" > //列表项单击事件</span><span class="pln"> userList</span><span class = "pun" >.</span><span class = "pln" >setOnItemClickListener</span><span class = "pun" >(</span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >ListView</span><span class = "pun" >.</span><span class = "typ" >OnItemClickListener</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onItemClick</span><span class = "pun" >(</span><span class = "typ" >AdapterView</span><span class = "pun" ><!--?--></span><span class = "pln" > arg0</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "typ" >View</span><span class = "pln" > arg1</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pln" > arg2</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > long </span><span class = "pln" > arg3</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "kwd" >out</span><span class = "pun" >.</span><span class = "pln" >println</span><span class = "pun" >(</span><span class = "pln" >arg2</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "kwd" >out</span><span class = "pun" >.</span><span class = "pln" >println</span><span class = "pun" >(</span><span class = "pln" >arg3</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >});</span><span class = "pln" > </span><span class = "com" > //列表项选中事件</span><span class="pln"> userList</span><span class = "pun" >.</span><span class = "pln" >setOnItemSelectedListener</span><span class = "pun" >(</span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >ListView</span><span class = "pun" >.</span><span class = "typ" >OnItemSelectedListener</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onItemSelected</span><span class = "pun" >(</span><span class = "typ" >AdapterView</span><span class = "pun" ><!--?--></span><span class = "pln" > arg0</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "typ" >View</span><span class = "pln" > arg1</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pln" > arg2</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > long </span><span class = "pln" > arg3</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > // TODO Auto-generated method stub</span><span class="pln"> </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "kwd" >out</span><span class = "pun" >.</span><span class = "pln" >println</span><span class = "pun" >(</span><span class = "str" > "selected----------" </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" >arg2</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "kwd" >out</span><span class = "pun" >.</span><span class = "pln" >println</span><span class = "pun" >(</span><span class = "str" > "selected----------" </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" >arg3</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onNothingSelected</span><span class = "pun" >(</span><span class = "typ" >AdapterView</span><span class = "pun" ><!--?--></span><span class = "pln" > arg0</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > // TODO Auto-generated method stub</span><span class="pln"> </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >});</span><span class = "pln" > </span><span class = "com" > //列表项长按事件</span><span class="pln"> userList</span><span class = "pun" >.</span><span class = "pln" >setOnItemLongClickListener</span><span class = "pun" >(</span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >ListView</span><span class = "pun" >.</span><span class = "typ" >OnItemLongClickListener</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > boolean </span><span class = "pln" > onItemLongClick</span><span class = "pun" >(</span><span class = "typ" >AdapterView</span><span class = "pun" ><!--?--></span><span class = "pln" > arg0</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "typ" >View</span><span class = "pln" > arg1</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pln" > arg2</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > long </span><span class = "pln" > arg3</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "kwd" >out</span><span class = "pun" >.</span><span class = "pln" >println</span><span class = "pun" >(</span><span class = "str" > "long---------" </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > arg2</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "kwd" >out</span><span class = "pun" >.</span><span class = "pln" >println</span><span class = "pun" >(</span><span class = "str" > "long---------" </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > arg3</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "kwd" > return </span><span class = "pln" > </span><span class = "kwd" > true </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >});</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span> |
上边注释的三句话
第一句 是我们可以自定义布局文件展示数据
第二句 我们可以用内置的布局文件来展示
第三句 和第二句一样,但是效果不一样,大家运行看看就明白了
GridView
类似与手机主菜单中展示的效果,如图
网格视图控件和我们的ListView 操作很像,上边已经解释过了,这里直接贴代码了
<span class = "kwd" > package </span><span class = "pln" > TSD</span><span class = "pun" >.</span><span class = "typ" >Jason</span><span class = "pun" >.</span><span class = "typ" >Example</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > java</span><span class = "pun" >.</span><span class = "pln" >util</span><span class = "pun" >.</span><span class = "typ" >ArrayList</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > java</span><span class = "pun" >.</span><span class = "pln" >util</span><span class = "pun" >.</span><span class = "typ" >HashMap</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >app</span><span class = "pun" >.</span><span class = "typ" >Activity</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >os</span><span class = "pun" >.</span><span class = "typ" >Bundle</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >widget</span><span class = "pun" >.</span><span class = "typ" >GridView</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > import </span><span class = "pln" > android</span><span class = "pun" >.</span><span class = "pln" >widget</span><span class = "pun" >.</span><span class = "typ" >SimpleAdapter</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > class </span><span class = "pln" > </span><span class = "typ" >GridViewActivity</span><span class = "pln" > </span><span class = "kwd" > extends </span><span class = "pln" > </span><span class = "typ" >Activity</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > // 定义整型数组 即图片源</span><span class="pln"> </span><span class = "kwd" > private </span><span class = "pln" > </span><span class = "typ" >Integer</span><span class = "pun" >[]</span><span class = "pln" > mImageIds </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >img1</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >img2</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >img3</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >img4</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >img5</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >img6</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >img7</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >img8</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >drawable</span><span class = "pun" >.</span><span class = "pln" >img1</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "pun" >};</span><span class = "pln" > </span><span class = "lit" > @Override </span><span class = "pln" > </span><span class = "kwd" > protected </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > onCreate</span><span class = "pun" >(</span><span class = "typ" >Bundle</span><span class = "pln" > savedInstanceState</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > // TODO Auto-generated method stub</span><span class="pln"> </span><span class = "kwd" > super </span><span class = "pun" >.</span><span class = "pln" >onCreate</span><span class = "pun" >(</span><span class = "pln" >savedInstanceState</span><span class = "pun" >);</span><span class = "pln" > setContentView</span><span class = "pun" >(</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >layout</span><span class = "pun" >.</span><span class = "pln" >gridview</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >GridView</span><span class = "pln" > gridview </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "pun" >(</span><span class = "typ" >GridView</span><span class = "pun" >)</span><span class = "pln" > findViewById</span><span class = "pun" >(</span><span class = "pln" >R</span><span class = "pun" >.</span><span class = "pln" >id</span><span class = "pun" >.</span><span class = "pln" >gridview</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "com" > // 生成动态数组,并且转入数据</span><span class="pln"> </span><span class = "typ" >ArrayList</span><span class = "pun" >&</span><span class = "pln" >gt</span><span class = "pun" >;</span><span class = "pln" > lstImageItem </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >ArrayList</span><span class = "pun" >&</span><span class = "pln" >gt</span><span class = "pun" >;();</span><span class = "pln" > </span><span class = "kwd" > for </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "kwd" > int </span><span class = "pln" > i </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "lit" > 0 </span><span class = "pun" >;</span><span class = "pln" > i </span><span class = "pun" >&</span><span class = "pln" >lt</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "lit" > 9 </span><span class = "pun" >;</span><span class = "pln" > i</span><span class = "pun" >++)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pln" > map </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HashMap</span><span class = "pun" >();</span><span class = "pln" > map</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "ItemImage" </span><span class = "pun" >,</span><span class = "pln" > mImageIds</span><span class = "pun" >[</span><span class = "pln" >i</span><span class = "pun" >]);</span><span class = "com" > // 添加图像资源的ID</span><span class="pln"> map</span><span class = "pun" >.</span><span class = "pln" >put</span><span class = "pun" >(</span><span class = "str" > "ItemText" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "NO." </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > </span><span class = "typ" >String</span><span class = "pun" >.</span><span class = "pln" >valueOf</span><span class = "pun" >(</span><span class = "pln" >i</span><span class = "pun" >));</span><span class = "com" > // 按序号做ItemText</span><span class="pln"> lstImageItem</span><span class = "pun" >.</span><span class = "pln" >add</span><span class = "pun" >(</span><span class = "pln" >map</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "typ" >SimpleAdapter</span><span class = "pln" > simple </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >SimpleAdapter</span><span class = "pun" >(</span><span class = "kwd" > this </span><span class = "pun" >,</span><span class = "pln" > lstImageItem</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >layout</span><span class = "pun" >.</span><span class = "pln" >gridviewitem</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >String</span><span class = "pun" >[]</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "str" > "ItemImage" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "ItemText" </span><span class = "pln" > </span><span class = "pun" >},</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pun" >[]</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >id</span><span class = "pun" >.</span><span class = "typ" >ItemImage</span><span class = "pun" >,</span><span class = "pln" > R</span><span class = "pun" >.</span><span class = "pln" >id</span><span class = "pun" >.</span><span class = "typ" >ItemText</span><span class = "pln" > </span><span class = "pun" >});</span><span class = "pln" > gridview</span><span class = "pun" >.</span><span class = "pln" >setAdapter</span><span class = "pun" >(</span><span class = "pln" >simple</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span> |
好,今天就到这里,源代码已经上传到天圣达网站,大家去下载下来,动手实践下。 http://www.bj-stl.com/android.html