1
// 万能adapter
implementation 'com.zhy:base-rvadapter:3.0.3'
implementation 'com.zhy:base-adapter:3.0.3'
2
GridLayoutManager gridLayoutManager = new GridLayoutManager(ServiceCustomActivity.this, 2);
hotServiceRv.setLayoutManager(gridLayoutManager);
myAdapter = new HotServiceAdapter(data, ServiceCustomActivity.this);
// hotServiceRv.setAdapter(myAdapter);
myAdapter.setRecyclerItemClickListener(new HotServiceAdapter.OnRecyclerItemClickListener() {
@Override
public void onRecyclerItemClick(int position) {
int serviceClassId = data.get(position).getServiceClassId();
int serviceId = data.get(position).getServiceId();
Intent intent = new Intent(ServiceCustomActivity.this, ServiceDetailWebActivity.class);
intent.putExtra("weburl", Constant.service + "serviceClassId=" + serviceClassId + "&serviceId=" + serviceId);
startActivity(intent);
}
});
HeaderAndFooterWrapper mHeaderAndFooterWrapper = new HeaderAndFooterWrapper(myAdapter);
TextView t1 = new TextView(ServiceCustomActivity.this);
t1.setText("热门服务");
t1.setTextColor(R.color.black);
t1.setTextSize(16);
t1.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
View headView = getLayoutInflater().inflate(R.layout.header_view, null);
mHeaderAndFooterWrapper.addHeaderView(headView);
mHeaderAndFooterWrapper.addHeaderView(t1);
hotServiceRv.setAdapter(mHeaderAndFooterWrapper);
mHeaderAndFooterWrapper.notifyDataSetChanged();
3
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.ServiceCustomActivity">
<LinearLayout
android:paddingTop="14dp"
android:paddingLeft="13dp"
android:paddingRight="13dp"
android:background="@color/blue"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:src="@mipmap/yibei"
android:layout_width="42dp"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_gravity="center_vertical"
android:background="@drawable/sousuo"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content">
<Button
android:layout_width="match_parent"
android:layout_height="33dp"
android:background="@null"
android:paddingLeft="10dp"
android:text="@string/sousuo_tips"
android:textColor="#CCCCCC" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:background="@mipmap/sousuo" />
</RelativeLayout>
<ImageView
android:layout_gravity="center"
android:src="@mipmap/send_demand"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:background="@mipmap/service_cutom_background"
android:id="@+id/hot_service_rv"
android:paddingTop="9dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
4
package com.ruhai.yibei.adapter;
import android.content.Context;
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 com.ruhai.yibei.R;
import com.ruhai.yibei.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);
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);
}
}