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="...
  • xiabing082
  • xiabing082
  • 2015年05月09日 21:33
  • 4979

listview显示数据,类似HTML那样的table显示。横屏可以拖拉。

http://www.eoeandroid.com/thread-173253-1-1.html 报表显示 listview显示数据,类似HTML那样的table显示。显示不足的时候,横屏可以拖拉...
  • forlong401
  • forlong401
  • 2012年07月25日 09:46
  • 3465

android利用html5实现listview并添加下拉刷新

  • 2013年09月27日 10:23
  • 1.02MB
  • 下载

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

1.只读列表   只读列表 列表项A 列表项B
  • niejing654092427
  • niejing654092427
  • 2013年11月06日 13:02
  • 4942

ListView的插入和编辑模板实例

.aspx代码如下: MaintainScrollPositionOnPostback="true" %>             .divItem{ padding:5px; bo...
  • yayun0516
  • yayun0516
  • 2014年12月09日 15:51
  • 1770

ListView 使用(1)

ListView 使用(1)参考:ListView:https://developer.android.com/reference/android/widget/ListView.html 列表视图...
  • u012005313
  • u012005313
  • 2017年03月05日 16:19
  • 378

ListView之BaseAdapter的用法简单案例(四)

一个简单的BaseAdapter的用法简单案例, 我们想利用BaseAdapter达到下面图片的简单效果。 首先我们先将布局文件写出来如下 ...
  • qq_34487977
  • qq_34487977
  • 2016年04月07日 18:34
  • 1743

实现Listview两种布局的加载

实现ListView多种布局的加载,这里加载两种,两种布局如下: 1 item_left,文字在左,图片在右 RelativeLayout xmlns:android="http:...
  • YvonneVon
  • YvonneVon
  • 2016年12月03日 14:45
  • 860

ListView 自定义头部、自定义加载尾部、上拉主动加载

1.加头尾部 (1)定自义一个xml布局 my_headview.xml 在Activity类里找到这个自定义布局,并添加到头部 LinearLayout  hearderVie...
  • wangwei_cq
  • wangwei_cq
  • 2013年07月19日 17:10
  • 20574

ListView的优化及其代码实现

如果一个listView不做任何的优化,而且有很多的条目,当我们快速的拖动listView的界面的时候,就不断的GCGC(Garbage Collection )垃圾回收,当GC到某个时候就会(OOM...
  • zhx544725865
  • zhx544725865
  • 2015年05月05日 09:11
  • 473
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ListView之两种实现 简单例子
举报原因:
原因补充:

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