在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。
一、简单应用
1、打开“res/layout/activity_main.xml”文件。
(1)从工具栏向activity拖出1个列表视图ListView。
(2)打开activity_main.xml文件。
完整代码如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/news"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
</ListView>
</RelativeLayout>
2、ListView列表视图代码
(1)打开“src/com.genwoxue.listview/MainActivity.java”文件。
然后输入以下代码:
package com.example.hw;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
private ListView lvNews = null;
private String news[] = {"互联网产品中的情感化设计","有效导向社交产品的商业价值","移动开发者:得90后者得天下",
"用户体验:从App的加载页面说开去","用扁平化的界面设计吸引用户","实体与数字世界的交集",
"网络社区用户成长的5个思考模式","十大值得关注的传统企业电商","2013年十大热点技术发展趋势","了解产品的开发环节:环形设计论",
"客户忠诚度的四个层次","在手机背面贴张'纸'就能轻松充电","互联网公司是怎样激发你的消费欲望的","高效工作的信息搜集及管理术"};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvNews = (ListView) findViewById(R.id.news);
lvNews.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,news));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
上面代码使用了ArrayAdapter(Context context, int textViewResourceId, List<T> objects)来装配数据,要装配这些数据就需要一个连接ListView视图对象和数组数据的适配器来两者的适配工作,ArrayAdapter的构造需要三个参数,依次为this,布局文件(注意这里的布局文件描述的是列表的每一行的布局,android.R.layout.simple_list_item_1是系统定义好的布局文件只显示一行文字,数据源(一个List集合)。同时用setAdapter()完成适配的最后工作。
(2)运行结果,可以上下滑动: