Android UI ListView的使用,androidlistview
一、ListView的理解
1.什么ListView?
一种用来显示多个可滑动项(Item)列表的的ViewGroup
需要使用Adapter将集合数据和每一个Item所对应的布局动态适配到ListView中显示
显示列表: listView.setAdapter(adapter)
更新列表: adapter.notifyDataSetChanged()
二、实现ListView的三种常用方式
1、ArrayAdapter应用
ArrayAdapter(Context context,int resource,T[] objects)
ArrayAdapter(Context context,int resource,List<T> objects)
context:上下文对象,一般为Activity对象
resourcce:Item的布局文件标识
objects:需要显示的数据集合
2.案例
1.创建一个 layout xml文件
1 <ListView xmlns:android="http://schemas.android.com/apk/res/android" 2 android:id="@+id/listView1" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 > 6 7 </ListView>
2.创建 layout 文件 布局 ListView 子元素 items
1 <?xml version="1.0" encoding="utf-8"?> 2 <TextView xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="50dp" 5 android:layout_marginLeft="20sp" 6 android:gravity="fill_vertical" 7 android:id="@+id/item_adapter" > 8 </TextView>
3. 代码实现
1 package com.example.android_ui_listview; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.widget.ArrayAdapter; 6 import android.widget.ListView; 7 8 public class MainActivity extends Activity { 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.activity_adapter); 13 14 // 初始化控件 15 ListView adapter_lv = (ListView) findViewById(R.id.listView1); 16 // 1.准备集合数据 17 String[] strs = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "09", 18 "89", "77", "55", "ut", "sd", "gj", "gjk", "qw", "jhk" }; 19 // 2.准备ArrayAdapter对象 20 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 21 R.layout.adapter_item, strs); 22 // 3.设置Adapter显示列表 23 adapter_lv.setAdapter(adapter); 24 } 25 }
效果:
2、SimpleAdapter应用
SimpleAdapter(Context context,List<? entends Map<String,?>> data,int resource,String[] from,int[] to)
context:上下文对象,一般为Activity对象
data:需要显示的数据集合
resource:Item布局文件的标识
from:Map对象的Key的数组,用于得到对应的value
to:Item布局文件中的子View的id的数组
1).创建 layout
1 <ListView xmlns:android="http://schemas.android.com/apk/res/android" 2 android:id="@+id/listView1" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 > 6 7 </ListView>
2). item 布局
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="horizontal" 6 android:id="@+id/simple_adapter"> 7 8 <ImageView 9 android:id="@+id/siple_iv" 10 android:layout_width="60dp" 11 android:layout_height="70dp" 12 android:src="@drawable/ic_launcher" /> 13 14 <LinearLayout 15 android:layout_width="wrap_content" 16 android:layout_height="69dp" 17 android:layout_marginRight="15dp" 18 android:gravity="center_vertical" 19 android:orientation="vertical"> 20 21 <TextView 22 android:id="@+id/siple_tv1" 23 android:layout_width="wrap_content" 24 android:layout_height="wrap_content" 25 android:text="@string/adapter_test" /> 26 27 <TextView 28 android:id="@+id/siple_tv2" 29 android:layout_width="wrap_content" 30 android:layout_height="wrap_content" 31 android:text="@string/adapter_number" /> 32 </LinearLayout> 33 34 </LinearLayout>
3)代码实现
1 package com.example.android_ui_listview; 2