Myadapter多条目配置

public class Myadapter extends BaseAdapter {
    private List<Bean.DataBean> list;
    private Context context;
    private final int THEM_ONE=1;
    private final int THEM_THREE=3;

    public Myadapter(List<Bean.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        int itemViewType = getItemViewType(position);
        switch (itemViewType){
            case THEM_ONE:
                CViewHolder holder=null;
                if (convertView==null){
                    convertView= View.inflate(context,R.layout.itm,null);
                    holder=new CViewHolder();
                    holder.ima_view=convertView.findViewById(R.id.ima_view);
                    holder.name_view=convertView.findViewById(R.id.name_view);
                    convertView.setTag(holder);
                }else{
                    holder= (CViewHolder) convertView.getTag();
                }
                holder.name_view.setText(list.get(position).getTitle());
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder.ima_view);
                break;
            case THEM_THREE:
                CViewHolder2 holder2=null;
                if (convertView==null){
                    convertView= View.inflate(context,R.layout.itm2,null);
                    holder2=new CViewHolder2();
                    holder2.name_view1=convertView.findViewById(R.id.name_view1);
                    holder2.ima_view1=convertView.findViewById(R.id.ima_view1);
                    holder2.ima_view2=convertView.findViewById(R.id.ima_view2);
                    holder2.ima_view3=convertView.findViewById(R.id.ima_view3);
                    convertView.setTag(holder2);
                }else{
                    holder2= (CViewHolder2) convertView.getTag();
                }
                holder2.name_view1.setText(list.get(position).getTitle());
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder2.ima_view1);
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holder2.ima_view2);
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),holder2.ima_view3);
                break;
        }
        return convertView;
    }

    public class CViewHolder{
        private TextView name_view;
        private ImageView ima_view;
    }
    public class CViewHolder2{
        private TextView name_view1;
        private ImageView ima_view1;
        private ImageView ima_view2;
        private ImageView ima_view3;
    }

    @Override
    public int getItemViewType(int position) {
        String pic_s02 = list.get(position).getThumbnail_pic_s02();
        if (pic_s02==null){
            return THEM_ONE;
        }else{
            return THEM_THREE;
        }
    }
    @Override
    public int getViewTypeCount() {
        return 4;
    }
}

 

在Android中,MyAdapter通常是一个继承自RecyclerView.Adapter的自定义适配器。以下是一个简单的`MyAdapter`实现步骤: ```java import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { // 数据源 private List<String> dataList; // ViewHolder类,用于复用和存储view的状态 public static class ViewHolder extends RecyclerView.ViewHolder { TextView textView; // 用于显示列表项内容的TextView public ViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.textView); } } public MyAdapter(List<String> dataList) { this.dataList = dataList; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_layout, parent, false); return new ViewHolder(itemView); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { String item = dataList.get(position); holder.textView.setText(item); } @Override public int getItemCount() { return dataList.size(); } // 如果需要处理点击事件,可以添加以下方法 public void onItemClick(int position) { // 实现单击事件处理 } // 当数据源变化时,调用notifyDataSetChanged() public void updateData(List<String> newData) { dataList = newData; notifyDataSetChanged(); } } ``` 在这个例子中,我们首先创建了一个ViewHolder类,用于在列表项被缓存后复用。`onCreateViewHolder()` 方法负责从布局文件中 inflate 出一个 view 并返回 ViewHolder。`onBindViewHolder()` 方法则将数据与view关联起来。`getItemCount()` 返回数据源的长度。 如果需要处理用户交互(比如点击),可以添加`onItemClick()`方法,并在列表项中添加相应的点击监听器。 当数据源发生变化时,使用`notifyDataSetChanged()`方法通知适配器更新视图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值