Android怎么自定义listview布局,Android ListView自定义布局

编辑:找一个 “开箱即用” 的帖子的末尾例子!

因为你看到多行受到影响我猜它有些事情要做系统如何回收资源,也许对Button的引用是不明确的。

我不确定我在哪里选择了这种做法(Android教程或我们以前的开发人员通过这些教程学习了Android)。然而,建议是使用一个嵌套类ViewHolder

private static class ViewHolder {

public Button processCheck;

}

将此放在适配器或任何类的getView()在声明并修改它是这样:

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

View v = convertView;

$ViewHolder viewHolder; //wait for the magic!

if (v == null) {

v = li.inflate(R.layout.process_row, null);

$viewHolder = new ViewHolder();

$viewHolder.processCheck = (Button) v.findViewById(R.id.processCheck);

$v.setTag(viewHolder);

//ok we somewhat stuffed an object with the Button into our View... so what?

}

$viewHolder = (ViewHolder) v.getTag();

//see explanation below

$viewHolder.processCheck.setOnClickListener(new View.OnClickListener() {

//set the onClickListener for this and only this button.

@Override

public void onClick(View v) {

if (process.isChecked() == false) {

process.setChecked(true);

processCheck.setBackgroundColor(Color.BLUE);

}

else {

process.setChecked(false);

processCheck.setBackgroundColor(Color.RED);

}

}

});

return v;

}

(我打上$变化。我认为这样他们应该很容易发现,如果我使用eclipse。否则查找+替换^^)

因此​​将返回一个与调用的视图关联的对象。对象是如此令人难以置信的泛型,您可以将其称为您创建的ViewHolder对象。因此,您可以引用按钮并将其存储在对象中。

现在,无论何时获得ListView,都可以检索对象并设置新鲜和新鲜的OnclickListener。这样你只有一个Listener被调用。

请注意,您不必再次致电v.setTag();来“保存”您的更改。

一个陷阱可能是如果你疯狂的东西,像在同一个列表中膨胀不同的布局,有什么理由。你也许会不同ViewHandlers分配给他们,如:

if (v == null) {

if(someCriteria) {

v = li.inflate(R.layout.process_row, null);

viewHolder = new ViewHolder();

}

v = li.inflate(R.layout.process_another_row, null);

viewHolder = new AnotherViewHolder();

}

随后的getView()一个ViewHolder或其他未经检查的通话可能会在运行时抛出一个错误!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【必懂】C语言水仙花数题解

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。 前言 本专栏内容将会以轻松、简单的方式完成习题的解答,用…

Android之点击图片底部出现灰色圆圈效果

1 需求 点击图片底部出现灰色圆圈效果 2 代码实现 1、num_oval_gray_def.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="oval"androi…

【ArcGIS风暴】ArcGIS 10.8中计算体积的方法总结

ArcGIS 10.8提供了表面体积和面体积两种计算体积的方法。 一、表面体积 用途:用于计算表面和参考平面之间区域的面积和体积。 Situation 1:参考面以上 Situation 2:参考面以下 Python脚本: import arcpy from arcpy import envarcpy.CheckOutExtension("3D")…

.NET7:更细致的时间

当年在做go时&#xff0c;很羡慕它的时间有微秒&#xff0c;纳秒&#xff0c;在做性能优化时&#xff0c;能很小颗粒度的查看引入方法执行的时间&#xff0c;当时.net的DateTime只有毫秒&#xff08;虽然也有别的办法获取&#xff09;。现在&#xff0c;在最新的.NET7 Preview4…

集合转数组

akdfajf //集合转数组 // StringBuffer sql new StringBuffer(); // String[] arr new String[hjPztTalentInfos.size()]; // for (int i 0; i < hjPztTalentInfos.size(); i) { // arr[i] hjPztTalen…

Android之解决AppBarLayout 下面一道阴影

1 问题 AppBarLayout 下面写了其它布局&#xff0c;但是当这个布局滑动到上面时候&#xff0c;AppBarLayout 下面有一道阴影 2 解决办法 对AppBarLayout设置一个属性&#xff1a; app:elevation"0dp"

案例:无人测量船水库水下地形测量及库容量计算

本文讲解利用南方方洲号无人船,该系统可用于水下地形地貌测绘、水库库容测量、水文勘测、疏浚检测、水环境监测等领域。 一、无人船水深测量 1、水岸线范围的获取 水岸线有助于布设航线,获取方式有两种: (1)无人船获取 对于

小米android系统耗电量大,小米手机耗电快的解决方法,亲测有效~

原标题&#xff1a;小米手机耗电快的解决方法&#xff0c;亲测有效~各位机友大家好&#xff0c;据小安观察&#xff0c;平台故障报修的小米手机用户还会蛮多的。那么今天就来讲讲小米手机的一些问题和解决方法&#xff0c;如果你感觉手机耗电较快&#xff0c;按照以下方式排查&…

【小白必懂】C语言最大、最小公约数题解

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 前言 本专栏内容将会以轻松、简单的方式完成习题的解答&#xff0c;用…

如何为微服务选择正确的消息队列

微服务及消息队列简史自从 Peter Rodgers 博士 2005 年在 Web Services Edge 会议上首次提出 Micro-Web-Services 一词后&#xff0c;IT 行业慢慢地从单体架构转向了微服务。2009 年&#xff0c;Netflix 决定把其单体架构拆分为微服务。2010 年&#xff0c;Best Buy 开始把它们…

Android之解决PC浏览器访问手机服务端取assets目录下的文件页面显示不出来问题

1 问题 我在手机里面写了Java socket服务,然后把前端的图片和css和js的文件放到了安卓项目的 assets目录,然后浏览器访问服务,我会把 assets目录下的文件读出来,然后用DataOutputStream流写入浏览器,但是发现页面显示不出来 2 分析原因 我的代码如下 public void sendHt…

【小白必懂】C语言回文数判断

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 情景再现 &#x1f478;小媛&#xff1a;小C&#xff0c;今天可以教我…

Android图片上倒计时,Android自定义照相机倒计时拍照

自定义拍照会用到SurfaceView控件显示照片的预览区域&#xff0c;以下是布局文件&#xff1a;两个TextView是用来显示提示信息和倒计时的秒数的xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:layout_height&qu…

【经典回放】多种语言系列数据结构算法:树(C#、JavaScript、VB6版)

目 录 一、树的C#语言实现以及显示 二、树的JavaScript语言实现以及显示 三、树的VB6语言实现以及显示 一、树的C#语言实现以及显示 1

『技术群里聊些啥』查看 dotnet 源码,用它!用它!用它!

前言有网友在交流群中询问&#xff0c;怎么找到 System.Linq 源码的库&#xff1a;其实&#xff0c;我一直使用http://source.dot.net查看 dotnet 源码&#xff0c;这可是David Fowler&#xff08;微软 .NET 架构师&#xff09;也推荐的&#xff1a;功能演示那它到底有哪些功能…

Android之解决PC浏览器上传表单文件到手机服务器read数据错误导致有时候下载到手机的文件打开文字错乱问题

1 、问题 手机客户端app通过java socket写了一个服务器,然后PC端通过浏览器访问服务端显示上传页面(这些资源都在手机端),然后其中有一个功能是PC端上传文件到手机服务器,然后把这个文件下载到手机本地,但是我有时候PC上传的文件打文字会错乱。 2、http的表单文件上传文…

javadoc注释规范

javadoc注释规范 javadoc做注释 一. Java 文档 // 注释一行 /* ...... */ 注释若干行 /** ...... */ 注释若干行&#xff0c;并写入 javadoc 文档 通常这种注释的多行写法如下&#xff1a; /** * ......... * ......... */ javadoc -d 文档存放目录 -author -version 源文件名.…

(7)3分钟搞定 C# 逻辑运算

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

【经典回放】多种语言系列数据结构算法:二叉树(C#版)

实验任务描述 1 用C#语言完成二叉树的类、并构造出一个二叉树; 2 用递归方法完成二叉树的遍历; 3 泛型的二叉树遍历之一、用队列给出遍历结果 4 泛型的二叉树遍历之二、委托方式给出二叉树遍历结果 1 二叉树类的设计 同C语言一样,要构建一个二叉树,要用到类似struct的东西…

ThinkPHP讲解(十二)——文本编辑器和ajax传址

一、文本编辑器 1.首先&#xff0c;在网上下载ueditor文件 2.在要添加文本编辑器的页面中引用ueditor文件中的js文件 <script type"text/javascript" charset"utf-8" src"../ueditor/utf8-php/ueditor.config.js"></script> <scr…