先简单的介绍一下ListActivity

ListActivity是一个专门显示ListView的Activity类,它内置了ListView对象,只要我们设置了数据源,就会自动地显示出来。ListActivity和普通的Activity没有太大的差别,不同就是对显示ListView做了许多优化,方面显示而已。

我们知道

列表的显示需要三个元素:

1.ListVeiw 用来展示列表的View。

2.适配器 用来把数据映射到ListView上的中介。

3.数据    具体的将被映射的字符串,图片,或者基本组件。

根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter

simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按钮),CheckBox(复选框)等等。

下面的代码都直接继承了ListActivity,采用simpleAdapter

先上两个图:

上代码

MoreActivity.java
______________________________________

  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import android.app.AlertDialog;
  6. import android.app.ListActivity;
  7. import android.content.DialogInterface;
  8. import android.os.Bundle;
  9. import android.view.View;
  10. import android.widget.ListView;
  11. import android.widget.SimpleAdapter;
  12. public class MoreActivity extends ListActivity {
  13. private String discount_info;
  14. private String recommend_shop;
  15. private String about_us;
  16. @Override
  17. public void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.more,
  20. new String[]{"title","info","img"},
  21. new int[]{R.id.title,R.id.info,R.id.img});
  22. setListAdapter(adapter);
  23. }
  24. private List<HashMap> getData() {
  25. List<HashMap> list = new ArrayList<HashMap>();
  26. Map map = new HashMap();
  27. discount_info=this.getString(R.string.discount_info);//相应字符串在String.xml中设置
  28. recommend_shop=this.getString(R.string.recommend_shop);
  29. about_us=this.getString(R.string.about_us);
  30. map.put("title", discount_info);
  31. map.put("info", "android 1");
  32. map.put("img", R.drawable.i1);
  33. list.add(map);
  34. map = new HashMap();
  35. map.put("title", recommend_shop);
  36. map.put("info", "android 2");
  37. map.put("img", R.drawable.i2);
  38. list.add(map);
  39. map = new HashMap();
  40. map.put("title", about_us);
  41. map.put("info", "android 3");
  42. map.put("img", R.drawable.i3);
  43. list.add(map);
  44. return list;
  45. }
  46. @Override
  47. protected void onListItemClick(ListView l, View v, int position, long id) {
  48. // TODO Auto-generated method stub
  49. super.onListItemClick(l, v, position, id);
  50. if(0==id)
  51. {
  52. showInfo();//点击第一项执行函数,其它id可以自己设置执行函数
  53. }
  54. }
  55. //定义启动Dialog
  56. public void showInfo(){
  57. new AlertDialog.Builder(this)
  58. .setTitle("title")
  59. .setMessage("bla..bla")
  60. .setPositiveButton("OK", new DialogInterface.OnClickListener() {
  61. @Override
  62. public void onClick(DialogInterface dialog, int which) {
  63. }
  64. })
  65. .show();
  66. }
  67. }

more.xml

______________________________________________

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
  3. android:orientation=”horizontal”
  4. android:layout_width=”fill_parent”
  5. android:layout_height=”fill_parent”>
  6. <ImageView
  7. android:id=”@+id/img”
  8. android:layout_width=”wrap_content”
  9. android:layout_height=”wrap_content”
  10. android:layout_margin=”5px”/>
  11. <LinearLayout
  12. android:orientation=”vertical”
  13. android:layout_width=”wrap_content”
  14. android:layout_height=”wrap_content”>
  15. <TextView
  16. android:id=”@+id/title”
  17. android:layout_width=”wrap_content”
  18. android:layout_height=”wrap_content”
  19. android:textColor=”#000000″
  20. android:textSize=”22px” />
  21. <TextView
  22. android:id=”@+id/info”
  23. android:layout_width=”wrap_content”
  24. android:layout_height=”wrap_content”
  25. android:textColor=”#000000″
  26. android:textSize=”13px” />
  27. </LinearLayout>
  28. </LinearLayout>

参考文章:

http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html

通过ListActivity使用ListView布局方法的更多相关文章

  1. Android使用ListView使用方法

    Android使用ListView应该注意的地方   在ListView中设置Selector为null会报空指针? mListView.setSelector(null);//空指针 试试下面这种: ...

  2. Android ListView getView()方法重复调用导致position错位

    问题现状:Android ListView getView()方法重复调用导致position错位 解决办法:把ListView布局文件的layout_height属性改为fill_parent或者m ...

  3. flex 布局 初次接触这个好使又不是特别好用的布局方法

    刚开始学前端的童鞋们应该也是一样先学习的table然后再学习了盒子模型,感觉终于学会了简单的网页布局,使用各种display,float,position绞尽脑汁给页面布局成自己想要的页面样式,然而, ...

  4. Android开发日常-listview滚动方法梳理

    listview滚动方法梳理 1.setSelection(position); 滚动到指定条目 2.setSelectionFromTop(position,y): 距离指定条目向下偏移y(像素) ...

  5. android listView布局等分列

    android listView布局4等分列. 必须要加上<RelativeLayout 在外层,不然等分不起作用 <RelativeLayout xmlns:android=" ...

  6. QMdiArea及QMdiSubWindow实现父子窗口及布局方法

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QMdiArea及QMdiSubWindow实现父子窗口及布局方法     本文地址:http ...

  7. 结合CSS3的布局新特征谈谈常见布局方法

    写在前面最近看到<图解CSS3>的布局部分,结合自己以前阅读过的一些布局方面的知识,这里进行一次基于CSS2.3的各种布局的方法总结. 常见的页面布局 在拿到设计稿时,作为一个前端人员,我 ...

  8. 一个ListView布局的不断演化

    刚出来工作,就负责一个APP的某块功能的编写,该功能就是类似微博那样的界面.微博界面的编写实际上是非常复杂的,虽然它只是一个ListView,但要想让这个ListView滑得动,是的,在一些配置低的手 ...

  9. ListView 使用方法(Asp.Net)

    您将须要用到的独有数据绑定控件. Fritz Onion 代码下载位置: ExtremeASPNET2008_03.exe (192 KB) Browse the Code Online  文件夹 L ...

随机推荐

  1. LOGSTASH再入门第一发

    慢慢弄起来... 前年搞过,现在生疏了,再慢慢拾起来吧. 一些URL: https://www.elastic.co/downloads/logstash https://www.elastic.co ...

  2. 使用ajax()方法加载服务器数据

    使用ajax()方法加载服务器数据 使用ajax()方法是最底层.功能最强大的请求服务器数据的方法,它不仅可以获取服务器返回的数据,还能向服务器发送请求并传递数值,它的调用格式如下: jQuery.a ...

  3. 独立IP与共享IP的区别

    做网站选择独立IP还是共享IP,相信很多站长都在此纠结过,自己不使用服务器的时候从来没有关心过独立IP和共享IP的究竟有什么具体的差别.但当自己真正用到的时候,才发现:同样都是 IP,差别不是一般的大 ...

  4. Oracle导出空表(从来都没有用过的表)

    Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出! .设置deferred_segment_creation参数为FALSE后,无论是空表还是 ...

  5. lintcode 中等题:Majority number II 主元素 II

    题目 主元素II 给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的三分之一. 样例 给出数组[1,2,1,2,1,3,3] 返回 1 注意 数组中只有唯一的主元素 挑战 要求时 ...

  6. java:定义线程

    Thread是java.lang包的类,默认导入. 进程:操作系统中的程序,多进程即同时运行多个程序.线程:程序中的流,多线程即程序中有多个流同时执行. 一个线程用一个线程对象表示 创建线程的方法: ...

  7. AspectJ 出现错误::0 can't find referenced pointcut 的解决之道

    使用AspectJ注解开发AOP应用时,会遇到以下问题: ::0 can't find referenced pointcut 这个问题,与你所在的开发环境有关,如下表 jdk version spr ...

  8. Jdk命令之jps

    jps -- Java Virtual Machine Process Status Tool jps命令类似于Linux下的ps命令,可以列出本机所有正在运行的java进程.

  9. HDU5086——Revenge of Segment Tree(BestCoder Round #16)

    Revenge of Segment Tree Problem DescriptionIn computer science, a segment tree is a tree data struct ...

  10. subsets-ii(需要思考,包括了子数组的求法)

    还是有一定难度的. 基本方法,就是用队列,然后不断累加新的数.这是为了不重复而量身定制的. 如果运行重复,是有更简单清晰的方法,就是每次增加考虑一个数字,然后加到本来每一个结果的后面.如下: publ ...