布局填充器LayoutFlater、基础适配器BaseAdapter的使用

Adapter部分

1. 所写类要继承Adapter(BaseAdapter)

public class Adapter2 extends BaseAdapter {

2. 写一个构造函数Adapter2(Context context){        }

private Context context;

Adapter2(Context context) {
        this.context = context;

    }

3. 再重写方法前,手动创建一个静态类,用于存放需要填充的控件。

static class ViewHolder {
        ImageView img2;
        TextView tv1;
        TextView tv2;
    }

4. 重写方法

getCount():决定要执行多少行

position:获得getCount()的返回值;运行时,代表当前所处位置(第几行)。


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

    @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) {
        return convertView;
    }

5.重写getView(int position , View convertView , ViewGroup parent) 方法

步骤:

         1. 实例化控件类ViewHolder。

         2. 利用填充器填充convertView。

         3. 利用convertView找到各个控件。

         4. 可以给各个控件重新赋值。

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = new ViewHolder();
        convertView = View.inflate(context, layout.activity_adapter2, null);
        holder.img2 = convertView.findViewById(R.id.img2);
        holder.tv1 = convertView.findViewById(R.id.tv1);
        holder.tv2 = convertView.findViewById(R.id.tv2);
        holder.img2.setImageResource(drawable.chrome);
        holder.tv1.setText("This is a Title");
        holder.tv2.setText("播放量:111万");
        return convertView;
    }

5. 完成Adapter的工作。

 

ListView部分

1. 首先,要在activity中创建一个<ListView>。

2. 类继承AppCompatActivity。

3. 声明要使用的控件ListView。

4. 重写方法。

   步骤:

            1.找到声明的ListView控件的位置。

            2. 为ListView控件设置适配器。

public class listview2 extends AppCompatActivity {
    private ListView lv2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_listview2);
        lv2=findViewById(R.id.lv2);
        lv2.setAdapter(new Adapter2(this));
    }
}

源码Adapter2.java

package com.example.classtask.listview2;

import androidx.appcompat.app.AppCompatActivity;
import com.example.classtask.R;
import static com.example.classtask.R.*;

public class Adapter2 extends BaseAdapter {
    private int rows = 20;
    private Context context;

    static class ViewHolder {
        ImageView img2;
        TextView tv1;
        TextView tv2;
    }

    Adapter2(Context context) {
        this.context = context;

    }

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

    @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 = new ViewHolder();
        convertView = View.inflate(context, layout.activity_adapter2, null);
        holder.img2 = convertView.findViewById(R.id.img2);
        holder.tv1 = convertView.findViewById(R.id.tv1);
        holder.tv2 = convertView.findViewById(R.id.tv2);
        holder.img2.setImageResource(drawable.chrome);
        holder.tv1.setText("This is a Title");
        holder.tv2.setText("播放量:111万");
        return convertView;
    }
}

源码listview2.java

package com.example.classtask.listview2;

public class listview2 extends AppCompatActivity {
    private ListView lv2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_listview2);
        lv2=findViewById(R.id.lv2);
        lv2.setAdapter(new Adapter2(this));
    }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Larry Chow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值