在接口里添加全部服务的api 然后创建全部服务的实体类 这里的实体类我就不写了 因为服务器可能已经被关掉了哦
public class RetrofitClient {
public static final String IP="http://124.93.196.45:10091";
private static Retrofit retrofit = new Retrofit.Builder()
.baseUrl(IP)
.addConverterFactory(GsonConverterFactory.create())
.build();
private RetrofitClient(){
}
public static Retrofit getRetrofit(){
return retrofit;
}
public static AppService apiService(){
return retrofit.create(AppService.class);
}
这里是主布局文件中的代码home-layout
接下来 要写一个item 用来实例化全部服务的Gridview
最重要的就是接下来的代码 这里是写在HomeFragment.java中的
root = inflater.inflate(R.layout.fragment_home, container, false);
initView();
setServiceData();
return root;
}
// 全部服务
private void setServiceData() {
RetrofitClient.apiService().getServiceData().enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
ServiceBean body = response.body();
if (body!=null&&body.getCode()==200) {
serviceRows = body.getRows();
Log.i(TAG,"全部服务-------------->"+serviceRows.size());
ServiceBean.RowsBean rowsBean = new ServiceBean.RowsBean();
rowsBean.setServiceName("全部服务");
rowsBean.setImgUrl("all");
serviceRows.add(rowsBean);
Log.i(TAG,"获取全部图片------------>"+serviceRows.size());
ServiceAdapter serviceAdapter = new ServiceAdapter(getActivity().getApplicationContext(), R.layout.item_service, serviceRows);
gridView.setAdapter(serviceAdapter);
gridView.setOnItemClickListener(((parent, view, position, id) -> {
switch (position){
case 0:
Toast.makeText(getActivity(),"1",Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(getActivity(),"2",Toast.LENGTH_SHORT).show();
break;
}
}));
}
}
@Override
public void onFailure(Call call, Throwable throwable) {
}
});
}
private void initView() {
gridView = root.findViewById(R.id.Grid_Service);
}
ServiceAdapter.java 别忘记它是继承ArrayAdapter的哦
public class ServiceAdapter extends ArrayAdapter{ public ServiceAdapter(@NonNull Context context, int resource, @NonNull List objects) { super(context, resource, objects); } @NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { ViewHodler viewHodler; if (convertView==null){ convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_service, parent, false); viewHodler = new ViewHodler(); viewHodler.itemGridImg=convertView.findViewById(R.id.item_grid_img); viewHodler.itemGridText=convertView.findViewById(R.id.item_grid_text); convertView.setTag(viewHodler); }else { viewHodler= (ViewHodler) convertView.getTag(); } ServiceBean.RowsBean item = getItem(position); viewHodler.itemGridText.setText(item.getServiceName()); if (item.getImgUrl().equals("all")){ Glide.with(getContext().getApplicationContext()).load(IP+item.getImgUrl()) .placeholder(R.drawable.ic_launcher_background) .into(viewHodler.itemGridImg); }else { Glide.with(getContext()).load(IP+item.getImgUrl()) .placeholder(R.drawable.ic_launcher_background) .into(viewHodler.itemGridImg); } return convertView; } private class ViewHodler { ImageView itemGridImg; TextView itemGridText; } }



