public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private RecyclerView mRecyclerView;
private Button mBtn;
private List<Goods.DataBean> mList;
private ArrayList<Goods.DataBean> mDataList = new ArrayList<>();
private MyRecyclerAdapter mAdapter;
private String mUrl = "http://m.yunifang.com/yunifang/mobile/goods/getall?random=39986&encode=2092d7eb33e8ea0a7a2113f2d9886c90&category_id=17";
private String mData;
private Handler mHandler=new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
private void initData() {
new Thread(new Runnable() {
@Override
public void run() {
mData = OkHttpManager.getSyncString(mUrl);
Goods goods = GsonUtil.getBean(mData, Goods.class);
mList = goods.getData();
mHandler.post(new Runnable() {
@Override
public void run() {
setRecyclerView();
}
});
}
}).start();
}
private void setRecyclerView() {
//获取布局管理器
LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(layoutManager);
mAdapter = new MyRecyclerAdapter(this, mList);
mRecyclerView.setAdapter(mAdapter);
//添加分割线
mRecyclerView.addItemDecoration(new DecorationUtil(this, DecorationUtil.VERTICAL_LIST));
//添加点击事件
mAdapter.setRecyclerViewOnItemClickListener(new MyRecyclerAdapter.RecyclerViewOnItemClickListener() {
@Override
public void onItemClickListener(View view, int position) {
//设置选中的项
mAdapter.setSelectItem(position);
}
@Override
public boolean onItemLongClickListener(View view, int position) {
mAdapter.setShowBox();
//设置选中的项
mAdapter.setSelectItem(position);
mAdapter.notifyDataSetChanged();
return true;
}
});
}
private void initView() {
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerview);
mBtn = (Button) findViewById(R.id.btnOk);
mBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
mDataList.clear();
//获取你选中的item
Map<Integer, Boolean> map = mAdapter.getMap();
for (int i = 0; i < map.size(); i++) {
if (map.get(i)) {
mDataList.add(mList.get(i));
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
//全选
case R.id.all:
Map<Integer, Boolean> map = mAdapter.getMap();
for (int i = 0; i < map.size(); i++) {
map.put(i, true);
mAdapter.notifyDataSetChanged();
}
break;
//全不选
case R.id.all_no:
Map<Integer, Boolean> m = mAdapter.getMap();
for (int i = 0; i < m.size(); i++) {
m.put(i, false);
mAdapter.notifyDataSetChanged();
}
break;
}
return super.onOptionsItemSelected(item);
}
}
//适配器类
public class MyRecyclerAdapter extends RecyclerView.Adapter