Android学习笔记(八):SimpleAdapter的学习

这个东西主要用来往ListView添加列表项的;
下面是源码地址:https://github.com/Jalon2015/Android_SimpleAdapter
具体步骤:

  • 首先,我们在布局文件activity_main.xml中添加一个 ListView控件

<RelativeLayout 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"
    tools:context="com.v11j.adapter.MainActivity">


    <ListView
        android:id="@+id/mylist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">ListView>
RelativeLayout>
  • 然后在MainActivity.java中进行代码的编写
package com.v11j.adapter;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    String[] names = {"我","你","她"};
    String[] desc = {"我喜欢你","你喜欢他","他喜欢我"};
    //下面的i,u,she都是图片文件名
    int[] images = {R.drawable.i,R.drawable.u,R.drawable.she};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        List> list = new ArrayList>();
        for(int i=0;i<3;i++)
        {
            Map map = new HashMap();
            map.put("name",names[i]);
            map.put("desc",desc[i]);
            map.put("image",images[i]);
            list.add(map);
        }
        /**
         *
         * 下面代码是关键,第一个参数是上下文,第二个参数是List>集合对象,里面的每个Map对象生成一个列表项
         * 第三个参数是界面布局文件,第四个参数是决定从Map中提取哪些key的value来对应列表项,
         * 第五个参数是决定填充哪些组件,其中的name,desc,image这3个id都是在adapter.xml布局文件中
         */
        SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.adapter,new String[]{"name","desc","image"},
                new int[] {R.id.name,R.id.desc,R.id.image});
        ListView listView = (ListView) findViewById(R.id.mylist);
        listView.setAdapter(adapter);
    }


}
  • 最后是adapter.xml布局文件的编写

<RelativeLayout 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"
    tools:context="com.v11j.adapter.MainActivity">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <TextView
                android:id="@+id/desc"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        LinearLayout>
    LinearLayout>
RelativeLayout>

你可能感兴趣的:(Android学习笔记)