Android学习(15)Adapter_适配器(自定义一个适配器)

Android学习(15)Adapter_适配器

Adapter:适配器。

系统提供的四个适配器:

  1. ArrayAdapter:用于字符串数组String[]
  2. SimpleAdapter:用于列表List
  3. SimpleCursorAdapter:用于数据库Cursor

主要方法:

  • getCount
  • getItem
  • getItemId
  • getView

自定义一个适配器

1.自定义一个视图imageview.xml

imageview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <ImageView
        android:id="@+id/iiv"
        android:layout_width="48dp"
        android:layout_height="52dp"
        android:src="@drawable/nazi"/>
    <TextView
        android:id="@+id/tvAd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

这里写图片描述

2.布局ListView显示视图

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/lvAd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </ListView>
</LinearLayout>

这里写图片描述

3.自定义一个适配器MyAdapter.java

MyAdapter.java

public class MyAdapter extends BaseAdapter {

    private Context context;
    private String data[];

    public DiyAdapter(Context context,String data[]) {
        this.context = context;
        this.data = data;
    }

    //当前你数据的长度
    @Override
    public int getCount() {
        return data.length;
    }

    //获得当前每一条数据的Item
    @Override
    public Object getItem(int position) {
        return data[position];
    }

    //获取每一条数据的id
    @Override
    public long getItemId(int position) {
        return position;
    }

    //需要加载的视图
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null){
            //加载一个视图
            convertView = LayoutInflater.from(context).inflate(R.layout.imageview,null);
        }
        TextView tv = (TextView)convertView.findViewById(R.id.tvAd);
        tv.setText(data[position]);
        return convertView;
    }
}

4.Activity中配置适配器

public class AdapterActivity extends AppCompatActivity {

    private ListView lv;
    private DiyAdapter adapter;
    private String data[]={"成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都","成都",};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_adapter);
        lv = (ListView)findViewById(R.id.lvAd);
        //加载adapter
        adapter = new DiyAdapter(this, data);
        //绑定adapter
        lv.setAdapter(adapter);
    }
}

这里写图片描述


声明:
1.知识点来源于《网易云课堂》——《Android基础视频教程》
2.本文只用于本人自身学习记录,如有侵权,请立即通知本人更改或删除

猜你喜欢

转载自blog.csdn.net/qq_40740256/article/details/82495058