当前位置: 代码迷 >> Android >> Android——ListView实现简略列表
  详细解决方案

Android——ListView实现简略列表

热度:69   发布时间:2016-04-27 22:35:50.0
Android——ListView实现简单列表


            最近做一个black ant的温控系统项目,里面有很多列表项,但是用的时候,感觉封装的已经挺好的了,自己拿过来改改代码就行了,所以用过之后也没什么感觉。现在趁着闲暇时间整理下简单的ListView,体会下这个东西到底是怎么个原理。


      首先看下实现效果:


         

       其中,每一条列表项加的是一个Image跟一个TextView,数据源绑定在了TextView上面。


       首先,添加两个layout文件:


       列表(item)的布局文件:

   

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="horizontal">        <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/ic_launcher"        />    <TextView        android:id="@+id/name"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="lhc"        /></LinearLayout>

 

     接着是整个Activity的布局文件:

 

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >        <ListView        android:id="@+id/lv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        /></LinearLayout>



    接着是Activity的代码:



public class ListDemo extends Activity{	private String[] names;//模拟数据源	private ArrayList<HashMap<String,String>> listItem;//需求的数据结构	private ListView mListView;//列表对象		@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.listview_activity);		initCtrl();//初始化组件		mListView.setOnItemClickListener((OnItemClickListener)new OnItemClickListener(){			@Override			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,					long arg3) {				Toast.makeText(getBaseContext(), "您选择了 :"+names[arg2], Toast.LENGTH_LONG).show();			}		});	}	/*初始化组件*/	private void initCtrl() {		mListView=(ListView)findViewById(R.id.lv);//获得listView对象		listItem=loadData();//加载数据		SimpleAdapter listItemAdapter=new SimpleAdapter(getBaseContext(),/*指明了SimpleAdapter关联的View的运行环境,也就是当前的Activity*/				listItem,/*由Map组成的List,在List中的每条目对应ListView的一行,每一个Map中包含的就是所有在from参数中指定的key*/				R.layout.listview_item,/*定义列表项的布局文件的资源ID,该资源文件至少应该包含在to参数中定义的ID*/				new String[]{"ItemName"},/*将被添加到Map映射上的Key*/				new int[] {R.id.name}/*将绑定数据的视图的Id跟from参数对应,这些被绑定的视图元素应该全是TextView*/				);		//设置适配器		mListView.setAdapter(listItemAdapter);	}	/*模拟获取数据源过程*/	private ArrayList<HashMap<String, String>> loadData() {		names=new String[]{"can","pppbc","pbc","lhc","can","小火山"};		listItem=new ArrayList<HashMap<String,String>>();		//遍历数组		for(int i=0;i<names.length;i++){			HashMap<String,String> map=new HashMap<String,String>();			String name=names[i];			map.put("ItemName", name);//以键值对的形式保存			listItem.add(map);//将HashMap添加到list中		}		return listItem;	}}

          





      

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

1楼u010191034昨天 20:57
不错不错,不明觉厉——chenchen
  相关解决方案