Android----------RecyclerView数据展示
来源:互联网 发布:怎么看端口号是什么 编辑:程序博客网 时间:2024/06/11 01:48
1.首先导入依赖:
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
2.适配器类:
public class NewsAdapter extends RecyclerView.Adapter { private View view; private Context mcontext; private ArrayList<NewsData.DataBean> mlist=new ArrayList<>(); public NewsAdapter(Context mcontext) { this.mcontext = mcontext; } //找到需要导入的布局 @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { view = LayoutInflater.from(mcontext).inflate(R.layout.news_item, null); return new ViewHolder(view); } //加载相应的内容 @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ViewHolder viewholder=(ViewHolder)holder; viewholder.textview.setText(""+getItem(position).getNews_title()); Glide.with(mcontext).load(getItem(position).getPic_url()).into(viewholder.ima); } //手写的重置数据的方法 public void setdata(ArrayList<NewsData.DataBean> list){ if (list!=null&&list.size()>0){ mlist.addAll(list); } } //手写的获得视图的方法 public NewsData.DataBean getItem(int position){ return mlist.get(position); }; @Override public int getItemCount() { return mlist.size(); } //定义的ViewHolder类继承RecyclerView.ViewHolder 并找到布局中的ID public class ViewHolder extends RecyclerView.ViewHolder{ private TextView textview; private ImageView ima; public ViewHolder(View itemView) { super(itemView); textview=(TextView)itemView.findViewById(R.id.tv); ima=(ImageView)itemView.findViewById(R.id.image); } }}
3.主界面(用到RecyclerView的主要是initdata()方法和Handler):
public class MainActivity extends AppCompatActivity implements IMainView{ private MainPresenter mainp; private NewsAdapter md; private RecyclerView recy; private ArrayList<NewsData.DataBean> mlist=new ArrayList<>(); private String url="http://api.expoon.com/AppNews/getNewsList/type/1/p/1"; private Handler hand=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Gson gson=new Gson(); if (msg.what==1) { NewsData newsData = gson.fromJson(msg.obj.toString(), NewsData.class); mlist=(ArrayList<NewsData.DataBean>) newsData.getData(); md.setdata((ArrayList<NewsData.DataBean>) mlist); md.notifyDataSetChanged(); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initview(); initdata(); initdatafromserver(); } private void initview() { recy=(RecyclerView)findViewById(R.id.recy); } private void initdatafromserver() { //加载网络数据,找P层去要 mainp.loadDataFromServer(url); } private void initdata() { mainp=new MainPresenter(this); //设置适配器 md=new NewsAdapter(this); //创建默认的线性LayoutManager recy.setLayoutManager(new LinearLayoutManager(this)); recy.setAdapter(md); } //重写的IMainView类接口的两个方法 @Override public void successfulCallback(String str) { Message msg = Message.obtain(); msg.what=1; msg.obj=str; hand.sendMessage(msg); } @Override public void errCallback(int code, String msg) { }}
阅读全文
0 0
- Android----------RecyclerView数据展示
- Android---------通过OkHttp网络请求利用RecyclerView展示数据
- android:MVP网络请求数据,运用RecyclerView-LinearLayout展示
- RecyclerView+OkHttp展示网络数据
- RecyclerView加载数据进行展示
- recyclerview展示数据(MVP)
- RecyclerView瀑布流展示数据
- android网络数据获取与解析+RecyclerView数据展示实现ListView、GridView、瀑布流切换
- OkHttp+RecyclerView多条目展示数据
- MVP模式OKhttp请求RecyclerView展示数据
- RecyclerView展示数据+跳转详情页
- OkHttp+RecyclerView,利用OkHttp请求数据,并RecyclerView展示
- Android使用OKHTTP网络框架请求数据,RecyclerView结合Glide展示图片,瀑布流布局样式
- Android项目okhttp请求+RecyclerView展示
- Android RecyclerView瀑布流展示(OkHttp协议)
- Android 用Retrofit进行网络获取数据,recyclerview进行展示在Fragment里,并存入到GreenDao数据库中
- RecyclerView用法(一)------展示单一类型Item数据
- RecyclerView用法(一)------展示多中类型Item数据
- Jquery -- 错误集
- 阿里云申请配置免费DVSSL证书
- Android字符串进阶之三:字体属性及测量(FontMetrics)
- Maven
- ACdream 1103 瑶瑶正式成为CEO (树链剖分+最小费用最大流)
- Android----------RecyclerView数据展示
- ssm整合的增删改查
- 揭开VR View之全景图的神秘面纱
- java代码使用ImageJ解析dicom文件成图片
- 给jqGrid表格某一列值添加点击事件
- java学习(1) 第一个java小程序运行解释
- ACM一类方程问题的求解[最短路建模] bzoj2118
- hdu1505—City Game(1506的加强版)
- CSAPP 第一章 计算机系统漫游