zoukankan      html  css  js  c++  java
  • 安卓学习第12课——SimpleAdapter

    SimpleAdapter一点也不简单,他的参数就带了5个,天哪,晕了。。

    今天学的这个适配器, public SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

    看这个大概明白,参数分别是第一个:表示访问整个android应用程序接口,基本上所有的组件都需要,一般都写this(改天研究一下),第二个应该是这个List对象名,第三个是list的id,第4,5指的分别是他的list里面的Map存的内容,String类型和其他类型(他的id)。

    <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" >
    <ListView 
        android:id="@+id/mylist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
    </RelativeLayout>
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <!-- 定义一个ImageView,用于作为列表项的一部分。 -->
    <ImageView android:id="@+id/header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:paddingLeft="10dp"
        />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <!-- 定义一个TextView,用于作为列表项的一部分。 -->
    <TextView android:id="@+id/name"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:textColor="#f0f"
        android:paddingLeft="10dp"
        />
    <!-- 定义一个TextView,用于作为列表项的一部分。 -->
    <TextView android:id="@+id/desc"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:textSize="14dp"
        android:paddingLeft="10dp"
        />
    </LinearLayout>
    </LinearLayout>
    package com.example.simpleadapter;
    
    
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    
    public class MainActivity extends Activity {
    //在xml中创建一个listview,用于显示simpleAdapter的列表项
        private String[] names=new String[]{"虎头","弄玉","李清照","李白"};
        private String[] descs=new String[]{"可爱的小孩","一个擅长音乐的女孩","一个擅长文学的女性","浪漫主义诗人"};
    private int[] imagesIds=new int[]{R.drawable.tiger,R.drawable.nongyu,R.drawable.qingzhao,R.drawable.libai};    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //创建一个List集合,集合元素师Map
            List<Map<String,Object>> listItems=new ArrayList<Map<String,Object>>();
            for(int i=0;i<names.length;i++){
                Map<String,Object> listItem=new HashMap<String,Object>();
                listItem.put("header", imagesIds[i]);
                listItem.put("personname", names[i]);
                listItem.put("desc", descs[i]);
                listItems.add(listItem);
            }
            //创建一个SimpleAdapter
            SimpleAdapter simpleAdapter=new SimpleAdapter(this,listItems,R.layout.simple_item,
                    new String[]{"personname","header","desc"},new int[]{R.id.name,R.id.header,R.id.desc});
            ListView list=(ListView) findViewById(R.id.mylist);
            list.setAdapter(simpleAdapter);
        }
    
    }

    我认为这个代码实现的过程是:创建一个listview,实现simpleAdapter列表项,在创建的simpleAdapter里面写下列表项内容。

    备注:这个学习了SimpleAdapter,list,HashMap.

  • 相关阅读:
    创建vue项目的时候报错,spawn yarn ENOENT
    理解比特币(4)——实现原理
    比特币(3)——比特币的其他优势
    比特币(2)——最大优势是价值存储
    如何在K8S中优雅的使用私有镜像库 (Docker版)
    [Go] godoc 打开本地文档, windows 同样适用
    [FAQ] Golang error strings should not be capitalized or end with punctuation
    [Go] gorm 错误处理 与 链式/Finisher方法
    [Go] golang 替换组件包 更新 go.mod, go.sum 的方式
    [FAQ] golang-migrate/migrate error: migration failed in line 0: (details: Error 1065: Query was empty)
  • 原文地址:https://www.cnblogs.com/Yvettey-me/p/3920903.html
Copyright © 2011-2022 走看看