当前位置:首页 » 《关注互联网》 » 正文

Android开发 常用的ListView与Adapter(附含源代码)_彬sir哥的博客

16 人参与  2021年09月05日 08:23  分类 : 《关注互联网》  评论

点击全文阅读


效果如下:


1.activity_lv.xml

......
    <ListView
        android:id="@+id/lv_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
        .......

2.MainActivity.java
2.1 datas 获取的设置数据

List<MyData> datas = getDatas();

2.2 列表的视图

        adapter = new MyAdapter<MyData>(MainActivity.this, datas, R.layout.item) {
            @Override
            public void convert(ViewHolder holder, MyData item, View convertView, ViewGroup parent, int position) {
                holder.setText(R.id.tv1, item.getName1());
                holder.setText(R.id.tv2, item.getName2());
            }
        };

2.2.1 item的视图

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="12.0dp">

    <ImageView
        android:id="@+id/iv_icon"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginRight="5dp"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/tv1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3.0"
        android:textSize="16.0sp" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2.0"
        android:gravity="center"
        android:textSize="16.0sp" />

    <ImageView
        android:id="@+id/iv_arrow"
        android:layout_width="15.0dip"
        android:layout_height="15.0dip"
        android:paddingLeft="5.0dp"
        android:src="@drawable/ic_arrow_right" />
</LinearLayout>

在这里插入图片描述
2.3 item点击事件

    private AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {

            final MyData data = adapter.getItem(position);
            Toast.makeText(MainActivity.this, data.getName2(), Toast.LENGTH_SHORT).show();
        }
    };

2.4 MyData实体类

public class MyData {
    private String name1;
    private String name2;

    public MyData(String name1, String name2) {
        this.name1 = name1;
        this.name2 = name2;
    }

    public String getName1() {
        return name1;
    }

    public void setName1(String name1) {
        this.name1 = name1;
    }

    public String getName2() {
        return name2;
    }

    public void setName2(String name2) {
        this.name2 = name2;
    }
}

2.5 MyAdapter类,获取/添加/清空的数据

......
    @Override
    public int getCount() {
        return datas == null ? 0 : datas.size();
    }
    
    public void addDatas(List<T> items) {
        if (datas == null) {
            datas = new ArrayList<>();
        }
        if (items != null) {
            datas.addAll(items);
        }
    }
   ......
    public void clearDatas() {
        if (datas != null) {
            datas.clear();
        }
    }
}

2.6 ViewHolder.java,设置文本和图片

......
    public ViewHolder setText(int id, CharSequence text) {
        TextView textView = getView(id);
        textView.setText(text);
        return this;
    }
    ......
    public ViewHolder setImageResource(int id, int resId) {
        ImageView imageView = getView(id);
        imageView.setImageResource(resId);
        return this;
    }
    ......

3.源代码地址下载
点击链接:下载源代码


点击全文阅读


本文链接:http://zhangshiyu.com/post/26982.html

视图  源代码  获取  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1