1.MainActivity页面
import android.os.Bundle;
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.view.View;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.adapter.MyAdapter;
import com.example.bean.Result;
import com.example.bean.User;
import com.example.core.BaseCall;
import com.example.presenter.MyPresenter;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity implements BaseCall{
@BindView(R.id.imag_back)
ImageView imagBack;
@BindView(R.id.imag_change)
ImageView imagChange;
@BindView(R.id.recy_view)
RecyclerView recyView;
@BindView(R.id.pull_view)
PullToRefreshScrollView pullView;
@BindView(R.id.text_zong)
TextView textZong;
@BindView(R.id.text_xiao)
TextView textXiao;
@BindView(R.id.text_jia)
TextView textJia;
private List<User> list;
private MyAdapter adapter;
private int type = 0;
private int page = 1;
private int sort = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
pullView.setMode(PullToRefreshBase.Mode.BOTH);
pullView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {
page = 1;
new MyPresenter(MainActivity.this).getData(page + "",sort+"");
pullView.onRefreshComplete();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
page++;
new MyPresenter(MainActivity.this).getData(page + "",sort+"");
pullView.onRefreshComplete();
}
});
new MyPresenter(this).getData(page + "",sort+"");
imagChange.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (type == 0) {
type = 1;
imagChange.setImageResource(R.drawable.b);
MyAdapter adapter = new MyAdapter(list, MainActivity.this, type);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyView.setLayoutManager(linearLayoutManager);
recyView.setAdapter(adapter);
} else if (type == 1) {
type = 0;
imagChange.setImageResource(R.drawable.a);
GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.this, 2);
recyView.setLayoutManager(gridLayoutManager);
recyView.setAdapter(adapter);
}
}
});
}
@Override
public void loadSuccess(Object data) {
list = (List<User>) data;
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyView.setLayoutManager(linearLayoutManager);
adapter = new MyAdapter(list, MainActivity.this, 0);
recyView.setAdapter(adapter);
}
@Override
public void loadError(Result result) {
}
@OnClick({R.id.text_zong, R.id.text_xiao, R.id.text_jia,R.id.imag_back})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.text_zong:
sort = 0;
Toast.makeText(this, "1111", Toast.LENGTH_SHORT).show();
new MyPresenter(MainActivity.this).getData(page + "",sort+"");
break;
case R.id.text_xiao:
sort = 1;
Toast.makeText(this, "222", Toast.LENGTH_SHORT).show();
new MyPresenter(MainActivity.this).getData(page + "",sort+"");
break;
case R.id.text_jia:
sort = 2;
Toast.makeText(this, "333", Toast.LENGTH_SHORT).show();
new MyPresenter(MainActivity.this).getData(page + "",sort+"");
break;
case R.id.imag_back:
finish();
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
new MyPresenter(this).unBindBaseCall();
}
}
2.适配器
package com.example.adapter;
import android.content.Context;
import android.content.Intent;
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.bean.User;
import java.util.ArrayList;
import java.util.List;
/**
* Created by 。 on 2018/12/15.
*/
public class MyAdapter extends RecyclerView.Adapter{
private List<User> list = new ArrayList<>();
private Context context;
private int type;
public MyAdapter(List<User> list, Context context, int type) {
this.list = list;
this.context = context;
this.type = type;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if(viewType==0){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_f, parent, false);
return new MyViewHolder(view);
}else if(viewType == 1){
View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
return new TwoViewHolder(inflate);
}
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
int itemViewType = holder.getItemViewType();
switch (itemViewType){
case 0:
MyViewHolder myViewHolder = (MyViewHolder) holder;
myViewHolder.two_title.setText(list.get(position).getSubhead());
myViewHolder.two_price.setText("¥"+list.get(position).getPrice());
String images = list.get(position).getImages();
String[] strings = images.split("!");
Glide.with(context).load(strings[0]).into(myViewHolder.imageView2);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context,ShowActivity.class);
intent.putExtra("url",list.get(position).getDetailUrl());
context.startActivity(intent);
list.remove(position);
notifyDataSetChanged();
}
});
break;
case 1:
TwoViewHolder twoViewHolder = (TwoViewHolder) holder;
twoViewHolder.textView1.setText(list.get(position).getSubhead());
twoViewHolder.textView2.setText("¥"+list.get(position).getPrice());
String images1 = list.get(position).getImages();
String[] strings1 = images1.split("!");
Glide.with(context).load(strings1[0]).into(twoViewHolder.imageView1);
break;
}
}
@Override
public int getItemCount() {
return list.size();
}
class MyViewHolder extends RecyclerView.ViewHolder{
private final ImageView imageView2;
private final TextView two_title;
private final TextView two_price;
public MyViewHolder(View itemView) {
super(itemView);
imageView2 = itemView.findViewById(R.id.two_imag);
two_title = itemView.findViewById(R.id.two_title);
two_price = itemView.findViewById(R.id.two_price);
}
}
class TwoViewHolder extends RecyclerView.ViewHolder{
private final ImageView imageView1;
private final TextView textView1;
private final TextView textView2;
public TwoViewHolder(View itemView) {
super(itemView);
imageView1 = itemView.findViewById(R.id.one_imag);
textView1 = itemView.findViewById(R.id.ont_title);
textView2 = itemView.findViewById(R.id.one_price);
}
}
@Override
public int getItemViewType(int position) {
if(type ==0){
return 0;
}else {
return 1;
}
}
}