RecyclerView....
来源:互联网 发布:室内定位 指纹算法 编辑:程序博客网 时间:2024/06/06 09:43
public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private List<Carton.DataBean.TopicsBean> list; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { String s = msg.obj.toString(); Gson gson = new Gson(); Carton carton = gson.fromJson(s, Carton.class); list.addAll(carton.getData().getTopics()); } }; private MyAdapter adapter; private SwipeRefreshLayout mswipeRefreshLayout; private int page = 1; private LinearLayoutManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initDate(); adapter.setOnItemClickListener(new MyAdapter.MyOnItemClickListener() { @Override public void OnItemClickListener(final View view, int position) { Toast.makeText(MainActivity.this, list.get(position).getTitle(), Toast.LENGTH_SHORT).show(); } }); //自动加载 recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (RecyclerView.SCROLL_STATE_IDLE == newState) { int lastVisibleItemPosition = manager.findLastVisibleItemPosition(); if (lastVisibleItemPosition == list.size() - 1) { Log.e("----------", "什么鬼"); page++; initDate(); adapter.notifyDataSetChanged(); } } } }); mswipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { page++; initDate(); adapter.notifyDataSetChanged(); mswipeRefreshLayout.setRefreshing(false); } }); } private void initView() { list = new ArrayList<>(); mswipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh); recyclerView = (RecyclerView) findViewById(R.id.mRec); recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); manager = new LinearLayoutManager(this); recyclerView.setLayoutManager(manager); adapter = new MyAdapter(MainActivity.this, list); } private void initDate() { recyclerView.setAdapter(adapter); new Thread() { @Override public void run() { String urlConnect = Net.getUrlConnect("http://api.kkmh.com/v1/topic_new/discovery_module_list/210?limit=3&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3OTE2MTcwNjE5LCJwcm9wZXJ0aWVzIjp7IiRvc192ZXJzaW9uIjoiNC4yLjIiLCJHZW5kZXJUeXBlIjoi5peg5rOV6I635Y-WIiwiVHJpZ2dlckl0ZW0iOjE3LCJWaXNpdFBhZ2VOYW1lIjoi5paw5L2c5LiK5p62IiwiJGxpYl92ZXJzaW9uIjoiMS42LjM0IiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6InNhbXN1bmciLCJUcmlnZ2VySXRlbU5hbWUiOiLmlrDkvZzkuIrmnrYiLCIkc2NyZWVuX2hlaWdodCI6NTc2LCJMaXN0VHlwZSI6IuaXp-eJiCIsIlByb3BlcnR5RXZlbnQiOiJSZWFkTGlzdCIsIlRyaWdnZXJPcmRlck51bWJlciI6MCwiRmluZFRhYk5hbWUiOiLmjqjojZAiLCJhYnRlc3RfZ3JvdXAiOjQ2LCIkc2NyZWVuX3dpZHRoIjoxMDI0LCIkb3MiOiJBbmRyb2lkIiwiVHJpZ2dlckl0ZW1UeXBlIjowLCJUcmlnZ2VyUGFnZSI6IkZpbmRQYWdlIiwiJGNhcnJpZXIiOiJDTUNDIiwiJG1vZGVsIjoiR1QtUDUyMTAiLCIkYXBwX3ZlcnNpb24iOiIzLjguMSJ9LCJ0eXBlIjoidHJhY2siLCJkaXN0aW5jdF9pZCI6IkE6OTA1MTA0Mjc2Mzc1NTEwOSIsIm9yaWdpbmFsX2lkIjoiQTo5MDUxMDQyNzYzNzU1MTA5IiwiZXZlbnQiOiJSZWFkTGlzdCJ9&style=3&offset=" + page); Message message = Message.obtain(); message.obj = urlConnect; handler.sendMessage(message); } }.start(); }}public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<Carton.DataBean.TopicsBean> mlist; private Context mcontext; private MyOnItemClickListener itemClickListener; private MyOnItemLongClickListener itemLongClickListener; private static final int TYPE_ITEM = 0; private static final int TYPE_FOOTER = 1; public interface MyOnItemClickListener { void OnItemClickListener(View view, int position); } public interface MyOnItemLongClickListener { void OnItemLongClickListener(View view, int position); } public MyAdapter(MainActivity context, List<Carton.DataBean.TopicsBean> list) { this.mlist = list; this.mcontext = context; } @Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(mcontext).inflate(R.layout.item, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(final MyAdapter.ViewHolder holder, int position) { Carton.DataBean.TopicsBean bean = mlist.get(position); holder.mTextView.setText(bean.getDescription()); Glide.with(mcontext).load(bean.getCover_image_url()).into(holder.mImageView); if (itemClickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { itemClickListener.OnItemClickListener(holder.itemView, holder.getLayoutPosition()); } }); if (itemLongClickListener != null) { holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { itemLongClickListener.OnItemLongClickListener(holder.itemView, holder.getLayoutPosition()); return true; } }); } } holder.mImageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("alpha", 1f, 0f, 1f); PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleX", 1f, 0, 1f); PropertyValuesHolder pvhZ = PropertyValuesHolder.ofFloat("scaleY", 1f, 0, 1f); ObjectAnimator.ofPropertyValuesHolder(v, pvhX, pvhY, pvhZ).setDuration(1000).start(); } }); } public void setOnItemClickListener(MyOnItemClickListener itemClickListener) { this.itemClickListener = itemClickListener; } public void setOnItemLongClickListener(MyOnItemLongClickListener itemLongClickListener) { this.itemLongClickListener = itemLongClickListener; } @Override public int getItemCount() { return mlist == null ? 0 : mlist.size(); } @Override public int getItemViewType(int position) { if (position + 1 == getItemCount()) { return TYPE_FOOTER; } else { return TYPE_ITEM; } } public class ViewHolder extends RecyclerView.ViewHolder { private TextView mTextView; private ImageView mImageView; public ViewHolder(View itemView) { super(itemView); mTextView = (TextView) itemView.findViewById(R.id.mtext); mImageView = (ImageView) itemView.findViewById(R.id.mimage); } }}
阅读全文
1 0
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- java学习第五天
- nyoj 115城市平乱
- java基础第十天 接口
- [题解]codeforces444c DZY Loves Colors
- bzoj 2292: 【POJ Challenge 】永远挑战 SPFA
- RecyclerView....
- 二维数组的基础知识
- HDU 1024 Max Sum Plus Plus DP+滚动数组
- extjs 负责人和部门的级联
- Codevs 1268 选择我自己的算法
- (HDU
- ubuntu常见不常见用法(不定期更新)
- 博客文章导航页
- [NOIP2016]天天爱跑步(lca+乱搞)