DataBean
public class DataBean {
private int price;
private int sales;
public DataBean(int price, int sales) {
this.price = price;
this.sales = sales;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getSales() {
return sales;
}
public void setSales(int sales) {
this.sales = sales;
}
}
Adapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private List<DataBean> list;
private Context context;
private LayoutInflater inflater;
public MyAdapter(List<DataBean> list, Context context) {
this.list = list;
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
MyViewHolder holder = new MyViewHolder(
inflater.inflate(R.layout.item, parent, false));
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.price.setText(list.get(position).getPrice() + "");
holder.sales.setText(list.get(position).getSales() + "");
}
@Override
public int getItemCount() {
return list.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
TextView price;
TextView sales;
public MyViewHolder(View itemView) {
super(itemView);
price = (TextView) itemView.findViewById(R.id.tv_price);
sales = (TextView) itemView.findViewById(R.id.tv_sales);
}
}
public void sortByPrice() {
//排序方法
Collections.sort(list, new Comparator<DataBean>() {
@Override
public int compare(DataBean o1, DataBean o2) {
return o2.getPrice() - o1.getPrice();
}
});
notifyDataSetChanged();
}
//
public void sortBySales() {
Collections.sort(list, new Comparator<DataBean>() {
@Override
public int compare(DataBean o1, DataBean o2) {
return o2.getSales() - o1.getSales();
}
});
notifyDataSetChanged();
}
}
MainActivity
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private List<DataBean> list;
private MyAdapter adapter;
private ImageView toTopImg; //回到顶部的按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView) findViewById(R.id.rec);
toTopImg = (ImageView) findViewById(R.id.toTop);
//添加数据
initData();
mRecyclerView.setLayoutManager(new GridLayoutManager(this,2));
adapter = new MyAdapter(list,this);
mRecyclerView.setAdapter(adapter);
//滑动监听
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(final RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
//得到此RecyclerView的布局信息
RecyclerView.LayoutManager layoutManager = recyclerView
.getLayoutManager();
//判断属于什么布局
if(layoutManager instanceof GridLayoutManager){
//得到布局信息中 第一条可见条目的位置
int firstItem = ((LinearLayoutManager) layoutManager)
.findFirstVisibleItemPosition();
if(firstItem > 10){
toTopImg.setVisibility(View.VISIBLE);
toTopImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//回到顶部
recyclerView.scrollToPosition(0);
toTopImg.setVisibility(View.GONE);
}
});
}else {
toTopImg.setVisibility(View.GONE);
}
}else if(layoutManager instanceof LinearLayoutManager){
int firstItem = ((LinearLayoutManager) layoutManager)
.findFirstVisibleItemPosition();
if(firstItem > 5){
toTopImg.setVisibility(View.VISIBLE);
toTopImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
recyclerView.scrollToPosition(0);
toTopImg.setVisibility(View.GONE);
}
});
}else {
toTopImg.setVisibility(View.GONE);
}
}
}
});
}
private void initData() {
list = new ArrayList<>();
list.add(new DataBean(2000,35));
list.add(new DataBean(12334,335));
list.add(new DataBean(200,325));
list.add(new DataBean(5400,352));
list.add(new DataBean(8500,15));
list.add(new DataBean(6399,42));
list.add(new DataBean(7430,565));
list.add(new DataBean(9100,353));
list.add(new DataBean(3000,251));
list.add(new DataBean(2460,167));
list.add(new DataBean(7822,336));
list.add(new DataBean(2100,35));
list.add(new DataBean(2050,35));
list.add(new DataBean(2077,35));
list.add(new DataBean(1900,3335));
list.add(new DataBean(11000,165));
list.add(new DataBean(50,152));
list.add(new DataBean(210,155));
list.add(new DataBean(2000,35));
list.add(new DataBean(13004,335));
list.add(new DataBean(154,125));
list.add(new DataBean(1444,222));
list.add(new DataBean(3100,134));
list.add(new DataBean(69,425));
list.add(new DataBean(4030,235));
list.add(new DataBean(1200,33));
list.add(new DataBean(3660,121));
list.add(new DataBean(1260,1367));
list.add(new DataBean(922,396));
list.add(new DataBean(8800,535));
list.add(new DataBean(8190,45));
list.add(new DataBean(277,66));
list.add(new DataBean(660,331));
list.add(new DataBean(6660,265));
list.add(new DataBean(53,132));
list.add(new DataBean(690,135));
}
//按钮点击事件,按价格排序
public void sortByPrice(View view) {
adapter.sortByPrice();
}
//按钮点击事件,按销量排序
public void sortBySales(View view) {
adapter.sortBySales();
}
}