android开发-listview的用法

泡在网上的日子 / 文 发表于2012-08-01 23:47 次阅读 android

/*注意:1继承了ListActivity,ListActivity和普通的Activity没有太大的差别,
* 不同就是对显示ListView做了许多优化,方便显示而已
*2使用simpleAdapter的数据用一般都是HashMap构成的List,list的每一节对应ListView的每一行
*
*/

第一步:编写布局文件main.xml,添加一个imageview和textview。具体代码如下

<?xml version="1.0" encoding="utf-8"?> 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="horizontal" 
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"> 
     <ImageView android:id="@+id/image" 
         android:layout_width="60dp"
         android:layout_height="60dp" 
         android:src="@drawable/icon"
         android:paddingLeft="10dp" /> 
   
     <TextView android:id="@+id/textview1"
         android:layout_width="wrap_content" 
         android:layout_height="fill_parent"
         android:textSize="16dp" 
         android:gravity="center_vertical"
         android:paddingLeft="10dp" /> 
   
 </LinearLayout>

第二步:修改ListView03.java,添加listview的相关操作,具体代码如下

View Code  
 package cn.shaoyangjiang.com; 
   
 import java.util.ArrayList; 
 import java.util.HashMap; 
 import java.util.List; 
 import java.util.Map; 
 import android.app.ListActivity; 
 import android.os.Bundle; 
 import android.widget.SimpleAdapter; 
   
 public class Listview03Activity extends ListActivity { 
   
     private static String[] aa = new String[]{"hello world","this is my listview", 
             "邵洋江加油","你会成功的","you will success"}; 
       
     private static int[] draw = new int[]{R.drawable.brick,R.drawable.calendar,R.drawable.eoemarket 
                     ,R.drawable.ic_launcher,R.drawable.terminater,R.drawable.whitesociety}; 
       
     @Override 
     public void onCreate(Bundle savedInstanceState) 
     { 
         super.onCreate(savedInstanceState); 
         //每个list里面放的都是MAP,map里面放的是键值对,这里指图片和文字 
         List<Map<String, Object>> Items = new ArrayList<Map<String, Object>>(); 
         //把该显示的内容放到list中 
         for (int i = 0; i < aa.length; i++) 
         { 
             Map<String, Object> item = new HashMap<String, Object>(); 
             item.put("image", draw[i]); 
             item.put("textview1", aa[i]); 
             Items.add(item); 
         } 
         //构建适配器Adapter,将数据与显示数据的布局页面绑定 
         SimpleAdapter simpleAdapter = new SimpleAdapter(this, Items, 
          R.layout.main, new String[]{ "textview1", "image" }, 
         new int[]{ R.id.textview1,  R.id.image}); 
         //通过setAdapter()方法把适配器设置给ListView 
         setListAdapter(simpleAdapter); 
         } 
 }

如果还想单机每个listview的item出现响应,可以使用下面这个方法

View Code  
         listView.setOnItemClickListener(new OnItemClickListener() { 
   
             @Override 
             public void onItemClick(AdapterView<?> parent, View view, 
                     int position, long id) { 
                 //强制转换为ListView 
                 ListView lv =(ListView)parent; 
                 //得到item的位置 
                 HashMap<String,Object> item = (HashMap<String,Object>)lv.getItemAtPosition(position); 
                 //显示 
                 Toast.makeText(MainActivity.this, item.get("listview1").toString(), 1).show(); 
                   
             } 
         });

效果图:

如果还想深入了解,下面的链接不错

AndroidAdapter用法总结http://kb.cnblogs.com/a/2328334/

收藏 赞 (0) 踩 (0)
上一篇:(解决The method onClick(View) of type new View.OnClickListe
Android开发时,报错: ( Button ) findViewById( R.id.btnChangeView ) .setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { //Dosth. } } ); 上述代码报错如下 - implements android.view.View.OnClickListener.onClic
下一篇:安卓android listview高级用法
这是我 listview 用的最高级的地方了,所谓的高级在你们眼里也许是低级。这里主要实现了可以对 listview 进行监听。 ListView 是一种用于垂直显示的列表控件,如果显示内容过多,则会出现垂直滚动条。它能够通过适配器将数据和自身绑定,在有限的屏幕上提供