0
点赞
收藏
分享

微信扫一扫

adapter的正确渲染姿势

@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
// View view = View.inflate(context, R.layout.hot_service_item, null);
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.hot_service_item, parent, false);
return new MyViewHolder(view);
}

全代码

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;

import io.winkong.marinsmart.R;
import io.winkong.marinsmart.bean.HotServiceBean;

import java.util.List;

public class HotServiceAdapter extends RecyclerView.Adapter<HotServiceAdapter.MyViewHolder> {

private List<HotServiceBean.DataDTO.RecordsDTO> data;
private Context context;

public HotServiceAdapter(List<HotServiceBean.DataDTO.RecordsDTO> data, Context context) {
this.data = data;
this.context = context;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
// View view = View.inflate(context, R.layout.hot_service_item, null);
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.hot_service_item, parent, false);
return new MyViewHolder(view);
}
//布局在这里呢
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.tv.setText(data.get(position).getServiceName());
if (data.get(position).getPicUrl().contains("http")) {
Glide.with(context).load(data.get(position).getPicUrl()).into(holder.hotServiceImgv);
} else {
Glide.with(context).load("https:" + data.get(position).getPicUrl()).into(holder.hotServiceImgv);
}

}

@Override
public int getItemCount() {
return data == null ? 0 : data.size();
}

public class MyViewHolder extends RecyclerView.ViewHolder {
private TextView tv;
private ImageView hotServiceImgv;


public MyViewHolder(@NonNull View itemView) {
super(itemView);
tv = itemView.findViewById(R.id.hot_service_tv);
hotServiceImgv = (ImageView) itemView.findViewById(R.id.hot_service_imgv);

itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mOnItemClickListener != null) {
mOnItemClickListener.onRecyclerItemClick(getAdapterPosition());
}
}
});
}
}

private OnRecyclerItemClickListener mOnItemClickListener;

public void setRecyclerItemClickListener(OnRecyclerItemClickListener listener) {
mOnItemClickListener = listener;
}

public interface OnRecyclerItemClickListener {
void onRecyclerItemClick(int position);
}
}


举报

相关推荐

0 条评论