安卓开发_浅谈ListView(SimpleAdapter数组适配器)

安卓开发_浅谈ListView(ArrayAdapter数组适配器)

学习使用ListView组件和SimapleAdapter适配器实现一个带图标的ListView列表

 

总共3部分

 

一、MainActivity.java文件

 1 package xqx;

 2 

 3 import java.util.ArrayList;

 4 import java.util.HashMap;

 5 import java.util.List;

 6 import java.util.Map;

 7 

 8 import com.example.test.R;

 9 

10 import android.app.Activity;

11 import android.content.res.TypedArray;

12 import android.os.Bundle;

13 import android.view.View;

14 import android.view.View.OnClickListener;

15 import android.view.ViewGroup;

16 import android.widget.AdapterView;

17 import android.widget.AdapterView.OnItemClickListener;

18 import android.widget.BaseAdapter;

19 import android.widget.Gallery;

20 import android.widget.ImageView;

21 import android.widget.ListView;

22 import android.widget.SimpleAdapter;

23 import android.widget.Toast;

24 

25 public class MainActivity extends Activity{

26 

27     private ListView listview;

28     @Override

29     protected void onCreate(Bundle savedInstanceState) {

30         // TODO Auto-generated method stub

31         super.onCreate(savedInstanceState);

32         

33         setContentView(R.layout.mainactivity);

34         //获取列表视图

35         listview = (ListView) findViewById(R.id.listView1);

36         //定义并初始化保存图片ID的数组

37         int [] imageId = new int[]{R.drawable.menu_chapu,R.drawable.menu_chapu,R.drawable.menu_chapu,R.drawable.menu_chapu,R.drawable.menu_chapu};

38         //定义并初始化保存列表项文字的数组

39         String[] title = new String[]{"茶忌","茶具","茶疗","茶谱","更多"};

40         //创建list集合

41         List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();

42         //通过for循环将图片id和列表项文字放到Map中,并添加到list集合中

43         for(int i=0;i<imageId.length;i++)

44         {

45             //实例化Map对象

46             Map<String,Object> map = new HashMap<String,Object>();

47             map.put("image", imageId[i]);

48             map.put("title", title[i]);

49             //将map对象添加到List集合

50             listItems.add(map);

51         }
        //参数一context:上下文
        //参数二data:数据源 ,一个Map组成的List集合
        //参数三resource:列表项的布局文件
        //参数四from:Map的键名
        //参数五to:绑定数据视图中的id,与from成对应关系
52 SimpleAdapter adapter = new SimpleAdapter(this, listItems, R.layout.items, new String[]{"title","image"},new int[]{R.id.title,R.id.image}); 53 listview.setAdapter(adapter); 54 } 55 56 }


二、两个 layout

(1)items.xml

 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     

 7     <ImageView 

 8         android:id="@+id/image"

 9         android:paddingRight="10px"

10         android:paddingTop="20px"       //图片距离头部20px

11         android:paddingBottom="20px"    //图片距离底部20px

12         android:adjustViewBounds="true" //
在ImageView 调整边界时保持图片的纵横比例,需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果。
13         android:maxWidth="72px"

14         android:maxHeight="72px"

15         android:layout_width="wrap_content"

16         android:layout_height="wrap_content"

17         />

18 

19     <TextView 

20         android:layout_width="wrap_content"

21         android:layout_height="wrap_content"

22         android:padding="10px"

23         android:layout_gravity="center"

24         android:id="@+id/title"

25         />

26 </LinearLayout>

用于布局列表项内容,采用水平线性布局,并在该布局管理器中添加一个ImageView组件和一个TextView组件,分别用于显示列表项中的图标和文字
(2)mainactivity.xml

 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="vertical" >

 6 

 7     <ListView

 8         android:id="@+id/listView1"

 9         android:layout_width="match_parent"

10         android:layout_height="wrap_content" >

11     </ListView>

12         

13 </LinearLayout>


三、AndroidManifest.xml

 1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"

 2     package="com.example.test"

 3     android:versionCode="1"

 4     android:versionName="1.0" >

 5 

 6     <uses-sdk

 7         android:minSdkVersion="8"

 8         android:targetSdkVersion="18" />

 9 

10     <application

11         android:allowBackup="true"

12         android:icon="@drawable/ic_launcher"

13         android:label="@string/app_name"

14         android:theme="@style/AppTheme" >

15         <activity android:name="xqx.MainActivity">

16 -         <intent-filter>

17                   <action android:name="android.intent.action.MAIN" /> 

18                   <category android:name="android.intent.category.LAUNCHER" /> 

19           </intent-filter>

20           </activity>

21     </application>

22 

23 </manifest>

效果图

安卓开发_浅谈ListView(SimpleAdapter数组适配器)

你可能感兴趣的:(SimpleAdapter)