Android RecyclerView实现数据列表展示效果

 更新时间:2017年07月12日 08:43:25   作者:leehbhs  
这篇文章主要为大家详细介绍了Android RecyclerView实现数据列表展示效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下

1.首先导入依赖: 

compile 'com.android.support:recyclerview-v7:25.3.1'

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) {

 }
}

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Flutter实现下拉刷新和上拉加载更多

    Flutter实现下拉刷新和上拉加载更多

    这篇文章主要为大家详细介绍了Flutter实现下拉刷新和上拉加载更多,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Android实现画板功能(一)

    Android实现画板功能(一)

    这篇文章主要为大家详细介绍了Android实现画板功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • AndroidGUI27中findViewById返回null的快速解决办法

    AndroidGUI27中findViewById返回null的快速解决办法

    这篇文章主要介绍了AndroidGUI27中findViewById返回null的快速解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 一文详解Jetpack Android新一代导航管理Navigation

    一文详解Jetpack Android新一代导航管理Navigation

    这篇文章主要为大家介绍了Jetpack Android新一代导航管理Navigation详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android App页面滑动标题栏颜色渐变详解

    Android App页面滑动标题栏颜色渐变详解

    这篇文章主要为大家详细介绍了Android App页面滑动标题栏颜色渐变,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Kotlin 使用Lambda来设置回调的操作

    Kotlin 使用Lambda来设置回调的操作

    这篇文章主要介绍了Kotlin 使用Lambda来设置回调的操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Android如何通过Retrofit提交Json格式数据

    Android如何通过Retrofit提交Json格式数据

    本篇文章主要介绍了Android如何通过Retrofit提交Json格式数据,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • Android实现单选按钮

    Android实现单选按钮

    这篇文章主要为大家详细介绍了Android实现单选按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Android文字基线Baseline算法的使用讲解

    Android文字基线Baseline算法的使用讲解

    今天小编就为大家分享一篇关于Android文字基线Baseline算法的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • 解决Android Studio Gradle Metadata特别慢的问题

    解决Android Studio Gradle Metadata特别慢的问题

    这篇文章主要介绍了解决Android Studio Gradle Metadata特别慢的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03

最新评论