屏幕适配

本文介绍了一种自定义Android ListView适配器的方法,通过创建一个继承自BaseAdapter的LeftAdapter类,实现了对ListView中不同类型的项进行布局和数据绑定。文章详细解释了如何设置视图类型、获取视图实例、绑定数据以及处理不同类型的项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.example.lianxi4.adapter;

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 com.example.lianxi4.R;

public class LeftAdapter extends BaseAdapter {

private String[] menus = new String[]{
        "联系人","消息","动态"
};

private Context context;

private final int ITEM_COUNT = 2;
private final int ICON_ITEM = 0;
private final int NEWS_ITEM = 1;

public LeftAdapter(Context context) {
    this.context = context;
}

@Override
public int getCount() {
    return menus.length+1;
}

@Override
public int getItemViewType(int position) {
    return position==0?ICON_ITEM:NEWS_ITEM;
}

@Override
public int getViewTypeCount() {
    return ITEM_COUNT;
}

@Override
public String getItem(int position) {

    if(position==0)
    {
        return null;
    }
    return menus[position-1];
}

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

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

    ImageViewHolder holder;
    if(convertView==null)
    {
        convertView = LayoutInflater.from(context).inflate(
                getItemViewType(position)==ICON_ITEM?R.layout.image:R.layout.text,
                parent,false
        );
        holder = new ImageViewHolder(convertView);
    }else{
        holder = (ImageViewHolder) convertView.getTag();
    }

    if(getItemViewType(position)==NEWS_ITEM)
    {
        holder.BindData(getItem(position));
    }

    return convertView;
}

class ImageViewHolder{

    ImageView imageView;
    TextView textView;

    public ImageViewHolder(View view){

        imageView = view.findViewById(R.id.icon);
        textView = view.findViewById(R.id.textView);
        view.setTag(this);
    }

    public void BindData(String text){
        textView.setText(text);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值