RecyclerView....

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);
        }
    }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值