zoukankan      html  css  js  c++  java
  • 安卓开发_浅谈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>

    效果图

  • 相关阅读:
    【Java】关于Spring框架的总结 (三)
    【Java】关于Spring框架的总结 (二)
    【Java】关于Spring框架的总结 (一)
    关于各编程语言冒泡排序的实现
    【Java】关于MyBatis框架的总结
    Linux 查看服务器开放的端口号
    网络安全随笔
    Window随笔
    Linux随笔
    Powercli随笔
  • 原文地址:https://www.cnblogs.com/xqxacm/p/4311309.html
Copyright © 2011-2022 走看看