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>

    效果图

  • 相关阅读:
    how to uninstall devkit
    asp.net中bin目录下的 dll.refresh文件
    查找2个分支的共同父节点
    Three ways to do WCF instance management
    WCF Concurrency (Single, Multiple, and Reentrant) and Throttling
    检查string是否为double
    How to hide TabPage from TabControl
    获取当前系统中的时区
    git svn cygwin_exception
    lodoop打印控制具体解释
  • 原文地址:https://www.cnblogs.com/xqxacm/p/4311309.html
Copyright © 2011-2022 走看看