AdpterView和Adapter接口以及实现的子类

AdpterView和Adapter接口以及实现的子类_第1张图片

AdpterView和Adapter接口以及实现的子类_第2张图片

四种为AdapterView填充Adapter的方法

  • 实现Adapter或者他子接口
  • 用Adapter接口的实现子类SimapleAdapter
  • 在xml文件中指定entries属性
  • 让当前Activity继承ListActivity
  1. 使用SimpleAdapter创建ListView
package com.phone.hty.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

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

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String[] string_good = new String[3];
        String[] strings_int = new String[3];
        int[] images = new int[]{R.drawable.linux, R.drawable.picasa, R.drawable.superman};
        for (int i = 0; i < string_good.length; i++) {
            string_good[i] = "点名不true" + i;
            strings_int[i] = "作业数量0" + i;
        }

        ListView mLv = (ListView) findViewById(R.id.lv);
        List<Map<String, Object>> lists = new ArrayList<Map<String, Object>>();
        for (int i = 0; i < string_good.length; i++) {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("dianming", string_good[i]);
            map.put("homework", strings_int[i]);
            map.put("image", images[i]);
            lists.add(map);
        }
        mLv.setAdapter(new SimpleAdapter(this, lists, R.layout.teacher,
                new String[]{"dianming", "homework", "image"}, new int[]{R.id.dianming,
                R.id.homework, R.id.imageView}));


        mLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                switch (position) {
                    case 0:
                        System.out.println(0 + "-------------------" + id);
                        TextView viewById = (TextView) view.findViewById(R.id.dianming);
                        viewById.setText("i am cuccess");
                        view.invalidate();
                        break;
                    case 1:
                        System.out.println(1 + "-------------------" + id);
                        break;

                }
            }
        });
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="100dp">


    <ImageView  android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"/>
    <TextView  android:id="@+id/dianming" android:padding="10dp" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" android:layout_alignParentRight="true"/>
    <TextView  android:layout_below="@id/dianming" android:id="@+id/homework" android:padding="10dp" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" android:layout_alignParentRight="true"/>
</RelativeLayout>

SimpleAdapter传入的最后一个参数是类表布局中每个组件的id也就是你要填充的目标

  1. BaseAdapter使用

已经添加好缓存机制

package com.phone.hty.myapplication;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/** * 作者:司马啸尘 * 创建日期:2016/3/25 * 项目名称:My Application * 描述: * {@pram } * {@return } */
public class MyAdapter extends BaseAdapter {
    private Context context;


    public MyAdapter(Context context) {
        this.context = context;

    }

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        viewHolder holder;
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.teacher, null);
            holder = new viewHolder();
            holder.dianming = (TextView) convertView.findViewById(R.id.dianming);
            holder.imageView = (ImageView) convertView.findViewById(R.id.imageView);
            holder.homework = (TextView) convertView.findViewById(R.id.homework);
            convertView.setTag(holder);
        } else {
            holder = (viewHolder) convertView.getTag();
        }
        GoodTeacheer teacheer = new GoodTeacheer(false, 0, R.drawable.linux);
        holder.dianming.setText("点名++++" + teacheer.isDianMing());
        holder.imageView.setImageResource(teacheer.getImage());
        holder.homework.setText("作业量怎么用" + teacheer.getHomeWork());
        return convertView;
    }

}

final class viewHolder {
    public TextView dianming;
    public ImageView imageView;
    public TextView homework;
};
  ListView listView = (ListView) findViewById(R.id.lv);
        listView.setAdapter(new MyAdapter(this));

你可能感兴趣的:(ListView)