android 自定义适配器MyAdapter

来源:互联网 发布:阿里巴巴代销传淘宝 编辑:程序博客网 时间:2024/06/09 22:10

1.主布局activity_main.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout    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" tools:context="com.example.myapplication.MainActivity">    <ListView        android:id="@+id/list"        android:layout_width="match_parent"        android:layout_height="match_parent"></ListView></android.support.constraint.ConstraintLayout>

2.子项布局item

<?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="match_parent"    android:weightSum="6">    <ImageView        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:id="@+id/imageView"/>    <LinearLayout        android:layout_weight="5"        android:orientation="vertical"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:weightSum="6">        <TextView            android:id="@+id/userName"            android:layout_weight="1"            android:layout_width="wrap_content"            android:layout_height="0dp" />        <TextView            android:id="@+id/content"            android:layout_weight="4"            android:layout_width="wrap_content"            android:layout_height="0dp" />        <TextView            android:id="@+id/time"            android:layout_weight="1"            android:layout_width="wrap_content"            android:layout_height="0dp" />    </LinearLayout></LinearLayout>

3.子项布局属性类Item.java(存放子布局中控件用到的属性值)

package com.example.myapplication;/** * Created by lenovo on 2017-7-24. */public class Item {    private int imageId;    private String userName;    private String content;    private String time;    public String getContent() {        return content;    }    public void setContent(String content) {        this.content = content;    }    public int getImageId() {        return imageId;    }    public void setImageId(int imageId) {        this.imageId = imageId;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getTime() {        return time;    }    public void setTime(String time) {        this.time = time;    }}

4.自定义适配器(将MainActivity中的数据与子项布局联系起来)

package com.example.myapplication;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import java.util.ArrayList;import java.util.List;/** * Created by lenovo on 2017-7-24. */public class MyAdapter extends BaseAdapter {    private LayoutInflater mInflater;    private List<Item> list = new ArrayList<>();    public  MyAdapter(Context context, List<Item> list) {            this.mInflater = LayoutInflater.from(context);            this.list = list;    }    @Override    public int getCount() {        return list.size();    }    @Override    public Object getItem(int i) {        return list.get(i);    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        view = mInflater.inflate(R.layout.item, null);        ImageView imageView = view.findViewById(R.id.imageView);        TextView userName = view.findViewById(R.id.userName);        TextView content = view.findViewById(R.id.content);        TextView time = view.findViewById(R.id.time);        Item item = list.get(i);        imageView.setImageResource(item.getImageId());        userName.setText(item.getUserName());        content.setText(item.getContent());        time.setText(item.getTime());        return view;    }}

5.主界面程序

package com.example.myapplication;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends Activity {    private List<Item> list = new ArrayList<>();    private ListView listView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView = findViewById(R.id.list);        for (int i = 0; i < 5; i++) {            Item item = new Item();            item.setImageId(R.mipmap.ic_launcher);            item.setContent(i + "");            item.setTime(i + "");            item.setUserName(i + "");            list.add(item);        }        MyAdapter myAdapter = new MyAdapter(MainActivity.this, list);        listView.setAdapter(myAdapter);    }}

6.最终界面


原创粉丝点击