目录:

1.主布局 ListView

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="net.pericles.brdome.listview3dome.MainActivity">

<ListView    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:id="@+id/listvis"></ListView></RelativeLayout>

2 ListVIew 自定义cell的布局
<?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="match_parent"    android:orientation="horizontal">

    <ImageView        android:layout_width="80dp"        android:layout_height="80dp"        android:id="@+id/imggs"        />

    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical"        android:layout_weight="1">

        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/txt1"/>

        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/txt2"/>

    </LinearLayout>

</LinearLayout>

3.模型
package net.pericles.brdome.listview3dome;

/** * Created by you on 2016/9/21. */public class UserData {

    private String userId;    private  String userName;    private int iconId;

    public void setUserId(String userId) {        this.userId = userId;    }

    public String getUserId() {        return userId;    }

    public String getUserName() {        return userName;    }

    public void setUserName(String userName) {        this.userName = userName;    }

    public int getIconId() {        return iconId;    }

    public void setIconId(int iconId) {        this.iconId = iconId;    }

    public UserData()    {        super();    }

    public  UserData( String userId,String userName, int iconId)    {        super();        this.userName = userName;        this.userId = userId;        this.iconId = iconId;

    }

}

4.BaseAdapter方法处理cell
package net.pericles.brdome.listview3dome;

import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;

import java.util.List;

/** * Created by you on 2016/9/21. */public class myDataAdeter extends BaseAdapter {

    private Context context;

    private List<UserData> lists;    private LayoutInflater layoutInflaters;

    ImageView img;    TextView tv1;    TextView tv2;

    myDataAdeter(Context context,List<UserData> lists)    {        this.context =context;        this.lists = lists;        layoutInflaters = layoutInflaters.from(this.context);    }

    @Override    public int getCount() {        return lists.size();    }

    @Override    public Object getItem(int position) {        return lists.get(position);    }

    @Override    public long getItemId(int position) {        return position;    }

    @Override    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null)        {            convertView = layoutInflaters.inflate(R.layout.ist_iemcell,null);        }

        img = (ImageView) convertView.findViewById(R.id.imggs);        tv1 = (TextView) convertView.findViewById(R.id.txt1);        tv2 = (TextView) convertView.findViewById(R.id.txt2);

        img.setImageResource(lists.get(position).getIconId());        tv1.setText(lists.get(position).getUserName());        tv2.setText(lists.get(position).getUserId());

        return convertView;    }}

5.主控制器 
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {

    private ListView listViews;    private List<UserData> osts;

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);

        listViews = (ListView) findViewById(R.id.listvis);        osts = getOsts();        listViews.setAdapter(new myDataAdeter(this,osts));        listViews.setOnItemClickListener(this);    }

    private List<UserData>getOsts()    {        List<UserData>lss = new ArrayList<UserData>();        for (int i = 0;i < 20; i ++)        {            UserData ss = new UserData();            ss.setIconId(R.drawable.img1);            ss.setUserName("标题:"+i);            ss.setUserId("id:"+i);            lss.add(ss);        }        return lss;    }

    @Override    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

//        Toast.makeText(this,((UserData)view.getItemAtPosition(position)).getUserName(),0).show();

    }}

6.权限
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="net.pericles.brdome.listview3dome">

    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application>

</manifest>

7.效果图

转载于:https://www.cnblogs.com/shenlaiyaoshi/p/5892802.html

android 自定义 listView相关推荐

  1. android中上拉下滑布局,3年以上勿进!最简单的Android自定义ListView下拉刷新与上拉加载,代码直接拿去用~...

    本文主要针对开发新手,手写实现一个最简单Android自定义listview下拉刷新和上拉加载demo. 不喜可喷,欢迎大佬留言指点. 效果图 一:编写需要在ListView中增加头加载的布局文件,与 ...

  2. Android自定义ListView示例,以创建不可滚动的ListView

    In this tutorial we'll override the ListView class to suit it according to our requirements in the a ...

  3. Android 自定义 ListView 上下拉动“刷新最新”和“加载更多”歌曲列表

    本文内容 环境 测试数据 项目结构 演示 参考资料 本文演示,上拉刷新最新的歌曲列表,和下拉加载更多的歌曲列表.所谓"刷新最新"和"加载更多"是指日期.演示代码 ...

  4. android仿qq动态视频播放,Android 自定义ListView实现QQ空间界面(说说内包含图片、视频、点赞、评论、转发功能)...

    前端时间刚好需要做一个类似于QQ空间的社区分享功能,说说内容包含文字(话题.内容).视频.图片,还需包含点赞,评论,位置信息等功能. 就采用LIstview做了一个,先来看下效果,GIF太大,CSDN ...

  5. Android 自定义ListView单击事件失效

    因为自带的listView不能满足项目需求,通过实现自己的Adapter去继承ArrayAdapter 来实现自定义ListView的Item项目. 出现点击ListView的每一项都不会执行setO ...

  6. Android 自定义 ListView 显示网络上 JSON 格式歌曲列表

    本文内容 环境 项目结构 演示自定义 ListView 显示网络上 JSON 歌曲列表 参考资料 本文最开始看的是一个国人翻译的文章,没有源代码可下载,根据文中提供的代码片段,自己新建的项目(比较可恶 ...

  7. Android代码 listview选中,android自定义listview的选中状态

    中心思想:将选中状态设置为完全透明色(即看不到自定义的选中状态)然后将listview 的每一项的背景设置为选中则切换背景 1,选择2个图片一个为一般的显示状态,另一张为选中状态的图片 在drawab ...

  8. Android 自定义ListView系列之适配器模式(少壮不努力,老大学IT)

    最近做个项目,要用到异步加载,动态刷新UI等.看了下2.2系统的图库源码,感觉写的不错.同时又把ListView拿出来研究了下,做个笔记. 先上图: 1. Android中大量用到了适配器模式,比如L ...

  9. android自定义listview实现圆角

    在项目中我们会经常遇到这种圆角效果,因为直角的看起来确实不那么雅观,可能大家会想到用图片实现,试想上中下要分别做三张图片,这样既会是自己的项目增大也会增加内存使用量,所以使用shape来实现不失为一种 ...

  10. Android自定义ListView实现仿微信侧滑删除

    经常在遇到问题第一时间都会在网上搜索解决的方法,因此看到很多前辈们的比较精辟的技术文章,学习了很多东西,现在将自己平时工作中开发的一些小功能坐下总结,也写出来,既方便自己理清思路记忆功能块实现思路,又 ...

最新文章

  1. BATZ,一份《Android架构开发手册》就够,已offer
  2. php增加数量,php – 更新列数量
  3. eos操作系统_EOS基础全家桶(十一)智能合约IDE-EOS_Studio
  4. 《人月神话》阅读笔记(三)
  5. 从事 Android 开发六年,我学到的那些事!
  6. 相机java程序_以编程方式在Android上用相机拍照
  7. 父元素浮动子元素会浮动吗_为什么quot;overflow:hiddenquot;能清除浮动的影响
  8. 小白R语言数据可视化进阶练习一
  9. 【2022第十届‘泰迪杯’挑战赛】A题:害虫识别完整版(大致思路。详细过程和代码以及结果csv在压缩包中)
  10. 使用ECharts绘制中国地图
  11. wegame开dnf正在连接服务器,DNF安装wegame后显示无网络连接状态解决办法
  12. 微信公众号发红包功能,现金红包、裂变红包接口
  13. 在家搭建 Minecraft 服务器,和远程小伙伴一起联机
  14. python抓取豌豆荚app数据信息
  15. 2013年第四届C B组蓝桥杯省赛真题
  16. fast-lio2论文阅读 《FAST-LIO2: Fast Direct LiDAR-inertial Odometry》
  17. 1024程序员节:北京尚学堂向改变世界的程序员致敬
  18. Nginx 反向代理 虚拟二级目录
  19. 关于晋升全栈工程师,从入门到放弃的神功秘籍,不点进来看一看?
  20. 数据结构与算法 迷宫夺宝 C语言

热门文章

  1. jmeter(十八)关联之XPath Extractor
  2. MySQL 慢查询日志工具之pt-query-digest
  3. 低级键盘钩子,在WIN7以上版本的问题
  4. mini6410移植--uboot移植(2)
  5. input 正则验证(摘)
  6. (三)Window的特色学习笔记
  7. python中range 10 0_如何在python中使用range方法
  8. mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表
  9. leetcode算法题--只有两个键的键盘
  10. mysql中序列的使用,在MySQL中使用序列的简单教程