ListView之两种实现 简单例子

原创 2012年03月29日 01:38:48

ListView是列单形式显示的组件,和GridView类似,我们也需要用到Adapter来控制数据与组件之间的联系。ListView有两种方式显示,一种是继承了ListActivity的Activity,整个UI都是个ListView;另一种是单独的ListView设置.

现在来看看继承ListActivity的ListView:

程序运行效果:

继承ListActivity的Activity会自动生成一个ListView来填充整个UI,我们不要通过设置setCotentView来设置UI. 在这个ListView里面全部都是TextView组件,在main.xml中定义,而TextView里面的内容则是在strings.xml中定义的,通过<string-array>标签来定义。

strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, MyListViewActivity!</string>
    <string name="app_name">Showlistview</string>

    <!-- 设置String数组 -->
    <string-array name="students">
        <item>邓光桥</item>
        <item>邓名流</item>
        <item>向洪伟</item>
        <item>何德聪</item>
        <item>张龙灿</item>
        <item>许仙</item>
        <item>姚明</item>
        <item>乔丹</item>
        <item>邓稼先</item>
        <item>蔡元培</item>
        <item>许三多</item>
        <item>王宝强</item>
    </string-array>

</resources>

main.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- 在整个XML设置为一个TextView -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp"
    android:textSize="20dp" />

MyListViewActivity:

public class MyListViewActivity extends ListActivity
{
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		// setContentView(R.layout.main);

		// 得到要显示的数据,在strings.xml中定义的string-array
		final String[] data = getResources().getStringArray(R.array.students);
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.main, data);
		setListAdapter(adapter);

		// 得到这个ListActivity自动生成的ListView
		ListView listView = getListView();
		listView.setOnItemClickListener(new OnItemClickListener()
		{
			public void onItemClick(AdapterView<?> parent, View view, int position, long id)
			{
				Toast.makeText(MyListViewActivity.this, "你选择的学生是:" + data[position] + "\n" + "学生ID是:" + (position + 1), Toast.LENGTH_LONG).show();
			}
		});
	}
}

如果要单独的实现listView,只要在UI里面添加ListView,在设置这个ListView的Adapter就可以了,和上面出不多。
不过现在有个问题:不知道ListView里面可不可以放其他类型的控件,我试过EditText也是可以的,不过Button就出错了,而且layout也会出错,不知道哪位可以告诉我怎么实现呢?


相关文章推荐

Html5学习-JQuery mobile--listview学习使用

8、列表 8.1 列表基础 (1) 标签定义列表项目。  标签定义有序列表。  标签定义无序列表。  标签可用在有序列表 () 和无序列表 () 中。  (2)为列表元素添加data-role="...

使用 jQuery Mobile 与 HTML5 开发 listView样式总结

1.只读列表   只读列表 列表项A 列表项B

log4j配置日志文件log4j.appender.R.File相对路径方法

方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs...

log4j配置参数详解——按日志文件大小、日期切分日志文件

项目中尽管对log4j有基本的配置,例如按天生成日志文件以作区分,但如果系统日志文件过大,则就需要考虑以更小的单位切分或者其他切分方式。下面就总结一下log4j常用的配置参数以及切分日志的不同方式。 ...

一个ListView根据标识加载不同布局,很简单的例子,就是聊天界面,你说话在右边好友在左边怎么实现呢.

我不是一个标题党,我也是自己遇到了这个问题,想给后面的人一个快速解决的方法:1.我最开始的方法是通过将两个布局写在一个布局文件里, 通过显示和隐藏控件,来实现这样的效果,这样看起来重用的控件利用率高了...

ListView实现两种布局

  • 2016年12月16日 17:20
  • 44KB
  • 下载

Hibernate的XML和annotation两种方式简单例子

Hibernate概述: ORM的全称Object/Relation Mapping ,对象/关系数据库映射。可以理解是一种规范,基本特征是完成面向对象的编程语言到关系数据库的映射。 Hi...

【Android学习】两种MVP模式的学习(一):谷歌例子的简单学习

谷歌MVP基本栗子学习

本人原创!解决安卓ListView复用问题最简单的两种方法。

ListView在安卓很多地方需要用得到,其实listview是基于MVC架构设计的,即数据model,视图view和控制器controller。安卓已帮我们写好该框架,我们只需往里面塞数据就行。对于...

android 一个ListView显示两种样式,比较简单,比如聊天的界面最常用

/** * @author intbird@163.com * @time 20131227 */ package com.yilake.adapter; import java.ut...
  • intbird
  • intbird
  • 2014年08月01日 17:32
  • 919
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ListView之两种实现 简单例子
举报原因:
原因补充:

(最多只允许输入30个字)