APIService
public interface MyApiService {
@GET
Observable get(@Url String url, @QueryMap Map<String,String> map);
@POST
Observable post(@Url String url,@QueryMap Map<String,String> map);
}
//总接口类的使用
public class Contacts {
//总接口前缀
public static final String BASE_URL = “http://www.zhaoapi.cn/”;
//登陆
public static final String USER_LOGIN = “product/searchProducts”;
//用户信息
public static final String USER_INFO = “user/getUserInfo”;
//上传图片
public static final String UP_LOAD_IMAGE = “file/upload”;
}
Model接口的创建
public interface Model {
void Request(String url, Map<String,String> map, Class cla, MyCallBack myCallBack);
}
//适配器
package com.example.retrofit.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.retrofit.R;
import com.example.retrofit.bean.MyData;
import com.facebook.drawee.view.SimpleDraweeView;
import java.util.ArrayList;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewholder> implements View.OnClickListener{
private Context context;
private List<MyData.DataBean> Mdata;
public MyAdapter(Context context, List<MyData.DataBean> mdata) {
this.context = context;
Mdata = mdata;
}
public void setMdata(List<MyData.DataBean> mdata) {
Mdata = mdata;
notifyDataSetChanged();
}
@NonNull
@Override
public MyViewholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.mytitle, null);
MyViewholder viewholder = new MyViewholder(view);
view.setOnClickListener(this);
view.setTag(i);
return viewholder;
}
@Override
public void onBindViewHolder(@NonNull MyViewholder myViewholder, int i) {
MyData.DataBean dataBean = Mdata.get(i);
String s = dataBean.getImages();
String[] split = s.split("\\|");
String s1 = split[0];
myViewholder.title.setText(dataBean.getTitle());
myViewholder.img.setImageURI(s1);
}
@Override
public int getItemCount() {
return Mdata.size();
}
@Override
public void onClick(View v) {
itemClick.setItemClick(v,(int)v.getTag());
}
public class MyViewholder extends RecyclerView.ViewHolder{
private SimpleDraweeView img;
private TextView title;
public MyViewholder(@NonNull View itemView) {
super(itemView);
img = itemView.findViewById(R.id.img);
title = itemView.findViewById(R.id.title);
}
}
//设置点击事件
public interface ItemClick{
void setItemClick(View v,int i);
}
private ItemClick itemClick;
public void setItemClick(ItemClick itemClick) {
this.itemClick = itemClick;
}
}
MainActivity的使用
package com.example.retrofit;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.ArrayMap;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.example.retrofit.adapter.MyAdapter;
import com.example.retrofit.bean.MyData;
import com.example.retrofit.presenter.ImPresenter;
import com.example.retrofit.view.MyView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import butterknife.BindView;
import butterknife.ButterKnife;
public class MainActivity extends AppCompatActivity implements MyView,View.OnClickListener{
private List<MyData.DataBean> Mdata=new ArrayList<>();
private Boolean zonghe_bol=false;
private Boolean xiaoliang_bol=false;
private Boolean jiage_bol=false;
@BindView(R.id.recy)
RecyclerView recy;
@BindView(R.id.qiehuan)
TextView qiehuan;
@BindView(R.id.zonghe)
TextView zonghe;
@BindView(R.id.xiaoliang)
TextView xiaoliang;
@BindView(R.id.jiage)
TextView jiage;
private MyAdapter myAdapter;
private ImPresenter imPresenter;
private Map<String, String> map;
private List<MyData.DataBean> mdata=new ArrayList<>();
private int pd=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
qiehuan.setOnClickListener(this);
zonghe.setOnClickListener(this);
jiage.setOnClickListener(this);
xiaoliang.setOnClickListener(this);
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
recy.setLayoutManager(linearLayoutManager);
myAdapter = new MyAdapter(this, Mdata);
recy.setAdapter(myAdapter);
map = new HashMap<>();
map.put("keywords","手机");
map.put("page","1");
imPresenter = new ImPresenter(this);
imPresenter.requestData(Contacts.USER_LOGIN,map,MyData.class);
myAdapter.setItemClick(new MyAdapter.ItemClick() {
@Override
public void setItemClick(View v, int i) {
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
intent.putExtra("id",mdata.get(i).getPid()+"");
startActivity(intent);
}
});
}
@Override
public void Success(T data) {
MyData data1 = (MyData) data;
mdata.addAll(data1.getData());
myAdapter.setMdata(mdata);
}
@Override
public void Error(T error) {
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.zonghe:
zonghe_change();
mdata.clear();
imPresenter.requestData(Contacts.USER_LOGIN,map,MyData.class);
break;
case R.id.qiehuan:
if(pd==0){
pd=1;
qiehuan.setBackground(getResources().getDrawable(R.drawable.grid));
GridLayoutManager gridLayoutManager=new GridLayoutManager(this,2);
recy.setLayoutManager(gridLayoutManager);
myAdapter = new MyAdapter(this, Mdata);
recy.setAdapter(myAdapter);
imPresenter = new ImPresenter(this);
imPresenter.requestData(Contacts.USER_LOGIN,map,MyData.class);
myAdapter.setItemClick(new MyAdapter.ItemClick() {
@Override
public void setItemClick(View v, int i) {
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
intent.putExtra("id",mdata.get(i).getPid()+"");
startActivity(intent);
}
});
}else{
pd=0;
qiehuan.setBackground(getResources().getDrawable(R.drawable.line));
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
recy.setLayoutManager(linearLayoutManager);
myAdapter = new MyAdapter(this, Mdata);
recy.setAdapter(myAdapter);
imPresenter = new ImPresenter(this);
imPresenter.requestData(Contacts.USER_LOGIN,map,MyData.class);
myAdapter.setItemClick(new MyAdapter.ItemClick() {
@Override
public void setItemClick(View v, int i) {
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
intent.putExtra("id",mdata.get(i).getPid()+"");
startActivity(intent);
}
});
}
break;
}
}
private void zonghe_change() {
zonghe_bol=true;
xiaoliang_bol=false;
jiage_bol=false;
zonghe.setTextColor(Color.RED);
xiaoliang.setTextColor(Color.BLACK);
jiage.setTextColor(Color.BLACK);
}
private void xiaoliang_change(){
zonghe_bol=false;
xiaoliang_bol=true;
jiage_bol=false;
xiaoliang.setTextColor(Color.RED);
zonghe.setTextColor(Color.BLACK);
jiage.setTextColor(Color.BLACK);
}
private void jiage_change(){
zonghe_bol=false;
xiaoliang_bol=false;
jiage_bol=true;
jiage.setTextColor(Color.RED);
xiaoliang.setTextColor(Color.BLACK);
zonghe.setTextColor(Color.BLACK);
}
}
public class Main2Activity extends AppCompatActivity {
@BindView(R.id.images)
ImageView images;
@BindView(R.id.titles)
TextView titles;
@BindView(R.id.prices)
TextView prices;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
ButterKnife.bind(this);
Fresco.initialize(this);
EventBus.getDefault().register(this);
}
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void messageEventBus(News.DataBean bean) {
String image = bean.getImages();
String[] splits = image.split("\\|");
Uri parse = Uri.parse(splits[0]);
Toast.makeText(this, parse+"", Toast.LENGTH_SHORT).show();
images.setImageURI(parse);
String title = bean.getTitle();
titles.setText(title);
int price = bean.getPrice();
prices.setText("¥"+price);
}
//防止内存
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
}