RecycleView
来源:互联网 发布:plsql怎么导出表数据 编辑:程序博客网 时间:2024/06/02 14:07
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.Toast;
import com.hhzmy.recyclerview.view.PullBaseView;
import com.hhzmy.recyclerview.view.PullRecyclerView;
import java.io.IOException;
import java.util.ArrayList;
import okhttp3.Request;
public class MainActivity extends AppCompatActivity implements PullBaseView.OnHeaderRefreshListener,
PullBaseView.OnFooterRefreshListener {
PullRecyclerView recyclerView;
private HomeAdapter recycleAdapter;
ArrayList<Bean.Data> mDatas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
// mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);
recyclerView = (PullRecyclerView) findViewById(R.id.recyclerView);
recyclerView.setOnHeaderRefreshListener(this);//设置下拉监听
recyclerView.setOnFooterRefreshListener(this);//设置上拉监听
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
protected void initData() {
mDatas = new ArrayList<Bean.Data>();
OkHttp.getAsync("http://m.yunifang.com/yunifang/mobile/goods/getall?random=39986&encode=2092d7eb33e8ea0a7a2113f2d9886c90&category_id=17", new OkHttp.DataCallBack() {
@Override
public void requestFailure(Request request, IOException e) {
}
@Override
public void requestSuccess(String result) throws Exception {
// Log.i("12132435657",result);
// Toast.makeText(getApplicationContext(), result, 0).show();
Bean mReclerBean = Tools.parseJsonWithGson(result, Bean.class);
mDatas = mReclerBean.data;
recycleAdapter = new HomeAdapter(MainActivity.this, mDatas);
//设置Adapter
recyclerView.setAdapter(recycleAdapter);
recycleAdapter.setOnItemClickListener(new HomeAdapter.OnRecyclerViewItemClickListener() {
@Override
public void onItemClick(View view, Bean.Data data) {
Toast.makeText(MainActivity.this, data.goods_name, Toast.LENGTH_SHORT).show();
}
});
}
});
}
@Override
public void onFooterRefresh(PullBaseView view) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// mDatas.add("TEXT更多");
recycleAdapter.notifyDataSetChanged();
recyclerView.onFooterRefreshComplete();
}
}, 2000);
}
@Override
public void onHeaderRefresh(PullBaseView view) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// mDatas.add(0, "TEXT新增");
recycleAdapter.notifyDataSetChanged();
recyclerView.onHeaderRefreshComplete();
}
}, 3000);
}
}
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
package com.hhzmy.recyclerview;
import android.content.Context;
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.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
/**
* Created by johpo on 2016/11/11 0011.
*/
public class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> implements View.OnClickListener{
private OnRecyclerViewItemClickListener mOnItemClickListener = null;
public void setOnItemClickListener(OnRecyclerViewItemClickListener
listener) {
this.mOnItemClickListener = listener;
}
@Override
public void onClick(View view) {
if (mOnItemClickListener != null) {
//主要要在点击事件里面得到以下数据
mOnItemClickListener.onItemClick(view, (Bean.Data) view.getTag());
}
}
public static interface OnRecyclerViewItemClickListener {
void onItemClick(View view,Bean.Data data);
}
private ArrayList<Bean.Data> mDatas;
private Context mContext;
private LayoutInflater inflater;
public HomeAdapter(Context context, ArrayList<Bean.Data> datas) {
this.mContext = context;
this.mDatas = datas;
inflater = LayoutInflater.from(mContext);
}
@Override
public int getItemCount() {
return mDatas.size();
}
//填充onCreateViewHolder方法返回的holder中的控件
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
holder.tv.setText(mDatas.get(position).goods_name);
ImageLoader.getInstance().displayImage(mDatas.get(position).goods_img, holder.lv);
holder.itemView.setTag(mDatas.get(position));
}
//重写onCreateViewHolder方法,返回一个自定义的ViewHolder
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.item, parent, false);
MyViewHolder holder = new MyViewHolder(view);
view.setOnClickListener(this);
return holder;
}
class MyViewHolder extends RecyclerView.ViewHolder {
TextView tv;
ImageView lv;
public MyViewHolder(View view) {
super(view);
tv = (TextView) view.findViewById(R.id.tv);
lv = (ImageView) view.findViewById(R.id.lv);
}
}
}
- recycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- recycleview
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- recycleview
- RecycleView及RecycleView Adapter
- android recycleView
- RecycleView初识
- recycleview示例
- 服务器维护系列——快速重启VNC
- 用puts和printf()输出字符串
- 避免dialog按下返回键消失
- App冷启动白屏/黑屏问题分析及解决方案
- 【红白游戏机】关于单片机与上位机保持同波特率的理解
- RecycleView
- homerHEVC代码阅读(31)——帧间预测之AMVP模式(常规帧间预测)
- PMP学习笔记之第13章 项目干系人管理 ——13.3管理干系人参与
- 简单计算器-功能实现
- UE4 里面 动态把Charactor跟playercontroller绑定
- 弹窗居中设置
- 【POJ 2785 4 Values whose Sum is 0】+ 折半枚举(双项搜索))
- C#——输入某日期,判断该日期对应星期几
- 07-图4 哈利·波特的考试