列表控件是android开发中比较常用的控件,今天介绍下列表控件的基本用发,会用到适配器和适配器组件监听
1.创建要显示的页面xx.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/img3" >
<ListView
android:id="@+id/myListview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#f3b345"/>
</LinearLayout>
2.创建页面处理类xxActivity.java
//1.定义列表实例
private ListView listView;
//2.定义数据形式
private List<Map<String,?>> data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
//模拟数据
String mdata="1/标题一/为什么打雷要下雨?#2/标题二/为什么天冷要穿衣?#3/标题三/为什么饿了就要吃?#4/标题四/为什么困了就要睡?";
//3.获取实例
this.listView=(ListView)findViewById(R.id.myListview);
//4.向适配器中添加要显示的列表数据
data = getData(mdata);
SimpleAdapter adapter=new SimpleAdapter(this, data,//数据源
android.R.layout.simple_list_item_2,//布局
new String[]{"title","content"},//填充
new int[]{android.R.id.text1,android.R.id.text2});//id
//5.让指定的组件关联适配器
this.listView.setAdapter(adapter);
//7.与指定的组件关联适配器监听器
this.listView.setOnItemClickListener(new ListViewocl());
}
//4.1获取数据的方法
private List<Map<String,?>> getData(String mdata){
List<Map<String,?>> listdata=new ArrayList<Map<String,?>>();
//4.2生成每条列表的数组
String array1[]=mdata.split("#");
//System.out("ddd",array1);
//4.3把每条列表的内容装进集合
for (int i = 0; i < array1.length; i++) {
Map<String,String> mapdata=new HashMap<String, String>();
String array[]=array1[i].split("/");
mapdata.put("title", array[1]);
mapdata.put("content", array[2]);
listdata.add(mapdata);
}
return listdata;
}
//6.创建适配器组件监听器
class ListViewocl implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position,
long id) {
// TODO Auto-generated method stub
Map<String,?> item=data.get(position);
Toast.makeText(MainActivity.this, "您选择了:"+item.get("title"),Toast.LENGTH_SHORT).show();
}
}
最终的效果图: