ListView之两种实现 简单例子

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也会出错,不知道哪位可以告诉我怎么实现呢?


转载于:https://www.cnblogs.com/hanyuan/archive/2012/03/29/2587315.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值