Android开发点点滴滴——ListView

  次阅读 来源:互联网(转载协议) 2015-11-26 14:00 我要评论(0)

初学android,感觉ListView组件用的广泛,也挺难的。下面是自己碰的问题

1.基于数组的ListView

需要通过ArrayAdpter来提供表项

[java]

...

array[i]=cursor.getString(1);

...

ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_2, array);

...

array[i]=cursor.getString(1);

...

ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_2, array);

其中 第一个参数是context,第二为外观样式,第三为数组。

list.setAdapter(arrayAdapter)就可以了,这是一个很简单listview

2.使用SimpleAdapter自定义列表项

这个感觉有点复杂了,主要是simpleadapter的建立参数有点多,

SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

第一个参数 context,第二个为列表项的集合,第三个是界面外观样式的ID,第四个与第二有关,相当于第二个的Map中Key,第五个与第三个有关,表示哪些view组成列表项

那么如果想修改的复杂一点,可以定制自己喜欢的layout放在第三参数的位置,相应的修改其他参数。

如果还想复杂,那么重写BaseAdapter吧。

3.添加单击事件

public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3)

这个是百度来的一个说明,很具体形象:

X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item。

如果你点了b这个item。如下:

publicvoid onItemClick (AdapterView<?> parent,// parent相当于listviewY适配器的一个指针,可以通过它来获得Y里装着的一切东西,再通俗点就是说告诉你,你点的是Y,不是X - -、

View view,// view是你点b item的view的句柄,就是你可以用这个view,来获得b里的控件的id后操作控件

int position,// position是b在Y适配器里的位置(生成listview时,适配器一个一个的做item,然后把他们按顺序排好队,在放到listview里,意思就是这个b是第position号做好的)

long id// id是b在listview Y里的第几行的位置(很明显是第2行),大部分时候position和id的值是一样的,如果需要的话,你可以自己加个log把position和id都弄出来在logcat里瞅瞅,看了之后心里才踏实

)

那么如何来获取item 中的值呢

[java]

listView= (ListView) this.findViewById(R.id.listview);

List<HashMap<String,String>>data = new ArrayList<HashMap<String,String>>();

UserService us = new UserService(this);

List<User> users = us.getScrollDate(0, 10);

for(User u : users){

HashMap<String,String> map = new HashMap<String, String>();

map.put("userid", String.valueOf(u.getUserid()));

map.put("name", u.getName());

map.put("age", String.valueOf(u.getAge()));

data.add(map);

}

SimpleAdapter adapter = new SimpleAdapter(this,data,R.layout.useritem,new String[]{"userid","name","age"},new int[]{R.id.userid,R.id.name,R.id.age});

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...