Android运行ListView的代码,Android——ListView实现简单列表

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

首先看下实现效果:

0818b9ca8b590ca3270a3433284dd417.png

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

首先,添加两个layout文件:

列表(item)的布局文件:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="horizontal">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/ic_launcher"

/>

android:id="@+id/name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="lhc"

/>

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

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/lv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

接着是Activity的代码:

public class ListDemo extends Activity{

private String[] names;//模拟数据源

private ArrayList> 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> loadData() {

names=new String[]{"can","pppbc","pbc","lhc","can","小火山"};

listItem=new ArrayList>();

//遍历数组

for(int i=0;i

HashMap map=new HashMap();

String name=names[i];

map.put("ItemName", name);//以键值对的形式保存

listItem.add(map);//将HashMap添加到list中

}

return listItem;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值