在android开发中,我们会使用ListView进行列表数据显示,此控件相比button、textView来说相对比较复杂一些。
在使用ListView中,需要定义ListView的格式(使用自带的或者自定义格式),同时需要声明一个适配器用来将数据和格式进行关联。
自带格式例如: android.R.layout.simple_list_item_1,此只显示一列文本框的样式;若需要显示复杂样式(每行中有图片、按钮等),则需要自定义的格式。
适配器,常用的有SimpleAdapter、ArrayListAdapter,还可以从BaseAdapter继承自定义适配器;
以一个简单示例进行详细说明
1、新建一活动textView1_layout
package com.example.listview_test;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class listview1_activity extends Activity {
String msg ="";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
try
{
super.onCreate(savedInstanceState);
setContentView(R.layout.listvie1_layout);
ArrayAdapter adapter = new ArrayAdapter(listview1_activity.this,android.R.layout.simple_list_item_1, getData());
ListView listview1 = (ListView)findViewById(R.id.listview1);
listview1.setAdapter(adapter);
}
catch(Exception ex)
{
Log.d("tag", ex.getMessage());
}
}
List<String> getData()
{
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
return list;
}
}
看到在代码中声明一个 ArrayAdapter 对象,构造函数包含3个参数
1、上下文;2、文章开头说的格式;3、数据
非常简单,我们只需要声明适配器对象,设置listview的适配器即可;
布局中的代码也贴下,非常简单,就一个listview视图
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listview1"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
运行效果