Adapter增加选中状态

import java.util.List;
import java.util.Map;

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

import com.tcad.util.WebTools;

public class MyArrayAdapter extends BaseAdapter{

	private static List<Map<String,String>> list;
	
	private LayoutInflater mInflater;
	
	private ViewHolder holder;
	//alertdialog 被选中初始化false
	private static boolean[] isFocused ;
	
	private static int whichClick = -1;
	
	public MyArrayAdapter(Context context,List<Map<String,String>> objects){
		
		list = objects;
		
		mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		
		isFocused = new boolean[objects.size()];
		
		for(int i=0;i<objects.size();i++){
			
			isFocused[i] = false;
		}
	}
	
	public int getCount() {
		
		return list.size();
	}

	public Object getItem(int position) {
		
		return list.get(position);
	}

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

	public void changeBg(int position){
		
		isFocused[whichClick==-1?0:whichClick] = false;
		
		whichClick = position;
		
		isFocused[position] = true;
		
		notifyDataSetChanged();
	}
	
	public View getView(int position, View convertView, ViewGroup parent) {
		
		if (convertView == null) {
			
            convertView = mInflater.inflate(R.layout.musiccategories, null);

            holder = new ViewHolder();
            
            holder.s_Name = (TextView) convertView.findViewById(R.id.s_name);
            
            convertView.setTag(holder);
        } else {
            // Get the ViewHolder back to get fast access to the TextView
            // and the ImageView.
            holder = (ViewHolder) convertView.getTag();
        }
		
		convertView.setBackgroundResource(isFocused[position]?android.R.drawable.alert_dark_frame:android.R.drawable.alert_light_frame);
		
		holder.s_Name.setText(list.get(position).get(WebTools.SON_GEMING));
		
		return convertView;
	}

	static class ViewHolder {
		
        TextView s_Name;
        
    }
}

 

掉 MyArrayAdapter 的changeBg(int)就可以改变该项的背景

实现Android ListView固定选中效果的技术细节 本文还有配套的精品资源,点击获取 简介:在Android开发中,通过自定义Adapter与ListView交互实现固定选中效果,当用户选择列表项时,即使滚动ListView,选中项依旧保持高亮状态。实现这一效果需要自定义Adapter来管理视图状态,记录选中位置,并在适当时更新视图。此外,需要在ListView的XML布局中禁用默认的选择模式,并可能调整列表项布局来增强选中... 阅读详情

相关推荐

历史预测+LLM双杀!DriveGPT4-V2闭环驾驶配置避坑指南

本文深入探讨了DriveGPT4-V2在工程化部署中的核心挑战与解决方案。通过融合历史轨迹预测与大语言模型,该模型旨在实现更可靠的端到端自动驾驶。文章详细解析了从环境配置、多模态Token对齐、轻量控制头设计到训练优化与闭环仿真验证的全流程,为开发者提供了一份详实的避坑指南。

transformer2023的博客 385

BaseAdapter

BaseAdapter是最基础的Adapter类,也是最实用最常用的一个类,但是相比于ArrayAdapter之类的,对初学者来说却比较难理解。所以在这里介绍一下BaseAdapter。 Adapter是什么 An Adapter object acts as a bridge between an AdapterView and the underlying data for t...

weixin_34306446的博客 889

Flutter版本升级踩坑实录:从3.27到3.35,我们是如何修复Impeller引擎导致的花屏问题的?

本文详细记录了团队在Flutter版本升级过程中遇到的Impeller引擎导致的花屏问题及解决方案。从问题诊断到最终升级至稳定版3.35,文章分享了排查步骤、升级策略和性能对比数据,为开发者提供了实用的参考经验。

weixin_26854555的博客 507

listVeiw之adapter使用优化及item选中状态的处理

要给listView设置列表数据需要掌握adapter的使用,这也是最基本的用法,初次之外的好多面试中曾被问到这样的问题:你可以说说listView的优化吗?相信不少被问到,今天我们就来解决下这个问题;好了直接上代码:继承BaseAdapter来使用ListView以下是继承之后需要实现的方法,我们来具体看看每个方法的作用 getCount() 用来获取数据源中的数据对象个数 @Over

qq_28563283的博客 1209

【记录】游戏体验报告怎么写(自我成长篇)

2019年3月更新: 这个倒是不用推翻,我个人虽然写的东西还是有一些偏差的,但是“表哥”说的倒是没毛病的,这篇主要是为了记录用,具体的干货也有,都在图片里,请自行提取 =====18年初原答案 作为一个游戏策划新人,游戏分析可能抓不到点子上,试着总结记录一下游戏体验报告分析的成长(因为水平不同,视野可能也不一样,也许之后几年回头看这些东西都是小儿科或者是错误的,所以只写出当下的想...

eat_human的博客 6万+

RK3568 RGA硬件加速详解:图像缩放、旋转、格式转换10倍提速

RGA(Raster Graphics Acceleration)是瑞芯微(Rockchip)芯片系列中的 2D 图形加速引擎,专门用于处理像素级的图像操作。它通过硬件实现常见的图像处理算法,解放 CPU,降低功耗。RGA 是 RK3568 平台上一颗强大的 2D 图形加速引擎,能够:✅10-20 倍性能提升:大幅减少图像处理时间✅降低 CPU 占用:释放 CPU 资源给其他任务✅丰富的功能:缩放、旋转、裁剪、格式转换一应俱全✅易于集成:librga 提供简洁的 C API。

小灰灰的博客 1697

Android ListView 设置选中item高亮状态

以前没有怎么在意listview设置选中状态这个问题.但是真当想用的时候,实实在在的发现了一些问题 本来以为只要简单的写个颜色 selector就可以达到目的.后来发现的确是错了 先说下我走过的弯路,本来以为listview的setSelection方法就能把该item设置为选中的高亮状态.没想到这个方法 仅仅只是把该项滑动到屏幕的最顶端而已 先把颜色 selector 以及布局贴一下

我用双手成就你的梦想,所以我必须努力 1万+

Claude Code 100个真实案例 - 用AI做数据可视化大屏(ECharts+实时数据)

数据报表看着枯燥?领导汇报缺少视觉冲击力?是时候做一个酷炫的数据可视化大屏了!本案例将用 Claude Code 从零搭建一个实时数据可视化大屏,使用 ECharts 实现折线图、柱状图、饼图、地图、仪表盘等多种图表,配合 WebSocket 实现秒级数据刷新,深色主题科技感拉满!

yueyeguzhuo的专栏 198

安卓Android Studio 下拉列表设置当前选中项

setSelection 感悟: 遇到问题,首先要学会思考,从不同角度去解决它。最后你会发现,答案其实就是一句话的事。现在对此颇有感触,也许前人也是经历了无数的弯路去试探,最终才给了我们正确的答案。我今天也当了一次试探者。 正题: spinner可以自定义样式: adapter = new ArrayAdapter<String>(getApplicationContext(),R.l...

tran_sient的博客 3128

C#上位机国产化适配全方案:兼容统信UOS+鲲鹏/昇腾+国产PLC,可直接交付国企项目

去年下半年,我帮天津滨海新区一家给一汽丰田做配套的汽车零部件国企,完成了3条产线、12套C#上位机的全栈国产化适配。这个项目的背景很典型,也很戳中国企客户的命门:一开始客户找了两家本地的集成商,都没搞定:第一家只会用.NET Framework,根本不知道怎么在统信UOS上跑C#;第二家勉强用.NET Core 3.1跑起来了,但和汇川国产PLC的通信丢包率高达1.2%,产线根本不敢用。我们接手后,用了2个月完成全栈适配:从Windows Server 2019迁移到统信UOS 1070d服务器版,从.NE

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 498

Python 控制 Keysight N9010B/N9020/N9030 频谱仪

为什么要实现频谱仪的控制呢?起因是因为我司RF的同事们需要对通信模块进行GSM的带内杂散进行测试,由于该测试的频点涉及900多个,所以急需开发一款自动化测试工具。该工具需同时实现对无线通讯仪和频谱仪的控制,这篇文章主要介绍一下频谱仪的控制!做通信的应该对频谱仪都不陌生,不过我之前做的都是软件相关行业,所以我对频谱仪其实还是很陌生的;不过好在我的同时们都很热心,加上仪器的文档,一段时间下来,也算是熟悉了一些。

xgh1951的博客 1万+

Android ListView控件选中item项,并保持选中状态

这几天在做公司的项目,有这样一个需求,就是在listView里,点击item子项的时候需要保持item子项的选中状态,上网搜了一些资料,最后也实现了。现在就记录下来,一方面方便以后自己回顾好复习温故,另外也和大家分享。 不多说了,上代码。先贴xml布局文件的。

raoj1991的博客 1万+

在YOLO中扩充新类别并且不影响旧类的识别精度

让我们先从简单的部分开始:用我们的新类训练自定义 YOLOv8 模型。在本教程中,我们将向模型添加车牌类。我们将使用Roboflow 中的一个数据集。这个数据集有两个车牌类。在开始训练之前,我们还必须对库进行一些更改。为了节省时间,我还将本教程中我们将进行的更改转换为补丁该补丁包含多项更改,但大多数更改都用于指南的下一部分。if RANK!= -1:是的,我们将编写一个回调。我们希望将此自定义训练模型的头部与 COCO 预训练模型中的旧头部一起使用。

如果想成为中心,那么就到中心去吧。 1226

Android RecyclerView实现列表多选

使用Recyclerview实现多选模式,基本思路是为Adapter增加一个Boolean集合,用以标记列表条目的状态

aa112901a的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Adnroid ListView And RecyclerView内嵌套CheckBox滑动错乱的简单解决方案

第一步: 在javabean手动加入一个属性作为选中的标记,默认不选中 public boolean isChoose = false; 第二部: adapter中的写法如下: //防止CheckBox复用错乱 holder.chooseCb.setOnClickListener(new View.OnClickListener() { ...

ITPlus的博客 345

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

RecyclerView之CheckBox实现单选效果

需求分析:动态加载支付渠道,默认选中第一个。(RecyclerView使用CheckBox实现单选功能) 解决方法: 1.在JavaBean里面添加一个boolean isSelected字段。 2.在Adapter里根据这个值设置“CheckBox”的选中状态。

Lucy_csdn的博客 6857

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

解决ListView内置选择框复用混乱的问题

一、概述有时候我们需要实现这样一个ListView,比如购物车中,选中某些物品,买单结账。很多时候使用的就是ListView用于展示物品详情,用户点中某个Item,选择框置位。但是因为ViewHolder的复用,下拉的时候会出现复用的Item在没有选中的情况下,选择框是钩取的,这时候要自定义一个适配器Adapter来解决这个问题。二、实现在自定义Adapter时,我们会传入数据源,用于实时更新ite

远方不远 765

关于BaseAdapter,SimpleAdapter的数据显示错乱问题,选中状态错乱问题,Checkbox选中状态错乱问题总结

干货不上图,直接上分析和解决办法 今天有同事就GridView中某个item按下之后,显示效果的保存问题对我进行了询问,其实这个问题比较简单就是一些稍微深入一点的知识的理解: 基于Adapter的数据显示问题,经常会出现错乱的情况,我们怎么处理这个情况呢? 我们应该从Adapter的基本的加载原理入手,在BaseAdapter的getview的加载的时候我们如果复用了 contentVie

Buider_Wonderful的专栏 2393

android listview选中某一行,成选中状态颜色高亮显示

构造自己的adapter,在getView中,设置颜色,点击item,刷新listview。 代码: import java.util.ArrayList; import j

dearbaba_8520的博客 2446

recycleview的item选中状态实现(单选中)

item选中状态

一个黑曼巴的博客 1352

Android ListView选中状态

ListView的选中状态的实现实际上是点击时刷新Listview 将点击行设置为高亮显示,其他行刷新设置为原来的状态。 本文的ListView中是一个简单的TextView ,为TextView设置一个Selector 设置普通状态和选中状态。 Item的写法和一般的没有区别,将android:background设置为上面的Selector就行了。

lhangtk的专栏 2156

GridView 设置选中状态,安卓移动开发实验报告

if (PullToRefreshGridView.MODE_PULL_DOWN_TO_REFRESH == mPullRefreshGridView.getCurrentMode()) { Toast.makeText(MainActivity.this, “下拉刷新”, Toast.LENGTH_SHORT).show(); mPullRefreshGridView.onRefreshComplete(); } else if (mode == PullToRefreshGridView.MODE_PU

m0_66264798的博客 3494

如何记录ListView滚动后CheckBox保持选中状态以及当全选后让滚动出来的item也被选中

1. 定义成员变量用于记录ListView所有item的选中状态: private Map checkStatusMap = new HashMap();2. 在adapter初始化时候向checkStatusMap中put listView数据个数的false(false意味着一开始都是未选中): private class CallLogListAdapter extends

zhangfei_jiayou的专栏 5881

ListView的固定选中效果

项目中需要用到ListView的高亮选中,并且保持选中状态的功能。 走了不少弯路,总结一下。展示一下ListView的选中需求:需要注意几点:

X-Teamer提炼商业万有引力模型, 低成本定制化开发 2276

ListView多条选中以及统计选中状态,避免复用错乱

昨晚帮朋友解决了一个选中状态错乱的问题,自己也复习了一下,所以把这个代码记录一下 /** * 描述:ListView多条选中以及统计选中状态,避免复用错乱 * 开发者:开发者的乐趣JRT * 创建时间:2017-4-20 21:32 * 优快云地址:http://blog.youkuaiyun.com/Jiang_Rong_Tao/article * E-mail:jrtxb520@163.com

ITPlus的博客 1515
上一篇: Android调用MediaScanner进行扫描
下一篇: 广播发送与接收
Levisoft
博客等级 码龄19年 2粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值