Android开发之利用ListView动态刷新某个Item
发布时间 - 2026-01-10 22:02:39 点击率:次前言

本文实现的是使用ViewHolder来刷新某项数据,而不用每次都全部刷新数据。下面话不多说,来看看详细的介绍。
实现方法
继承BaseAdapter,新建ViewHolder类。
public class TestListAdapter extends BaseAdapter {
private Context mContext;
private List<String> strList;
public TestListAdapter(Context context, List<String> list) {
super();
this.mContext = context;
this.strList = list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return strList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder = null;
if (null == convertView) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.line, null);
holder = new ViewHolder();
holder.iDText = (TextView) convertView.findViewById(R.id.textView_id);
holder.strText = (TextView) convertView.findViewById(R.id.textView_str);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.iDText.setText(position + "");
String str = strList.get(position);
holder.strText.setText(str);
return convertView;
}
private static class ViewHolder {
private TextView iDText;
private TextView strText;
}
public void updataView(int posi, ListView listView) {
int visibleFirstPosi = listView.getFirstVisiblePosition();
int visibleLastPosi = listView.getLastVisiblePosition();
if (posi >= visibleFirstPosi && posi <= visibleLastPosi) {
View view = listView.getChildAt(posi - visibleFirstPosi);
ViewHolder holder = (ViewHolder) view.getTag();
String txt = holder.strText.getText().toString();
txt = txt + "++;";
holder.strText.setText(txt);
strList.set(posi, txt);
} else {
String txt = strList.get(posi);
txt = txt + "++;";
strList.set(posi, txt);
}
}
}
在Activity中,调用updateView()方法,刷新数据。
public class MainActivity extends Activity {
private MainActivity mContext;
private EditText idEdit;
private TextView textView;
private List<String> strList = new ArrayList<String>();
private ListView listView;
private TestListAdapter ListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
for (int i = 0; i < 100; i++) {
strList.add("test data");
}
idEdit = (EditText) findViewById(R.id.edittext_id);
textView = (TextView) findViewById(R.id.textview_modify);
listView = (ListView) findViewById(R.id.listview);
ListAdapter = new TestListAdapter(mContext, strList);
listView.setAdapter(ListAdapter);
//动态刷新
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String idStr = idEdit.getText().toString();
int idInt = Integer.parseInt(idStr);
ListAdapter.updataView(idInt, listView);//动态修改
}
});
}
}
给出布局文件:
<LinearLayout 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:background="#FFFFFF" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal" > <EditText android:id="@+id/edittext_id" android:layout_width="200dp" android:layout_height="wrap_content" android:hint="put modify id" /> <TextView android:id="@+id/textview_modify" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="动态修改" android:textColor="#123456" /> </LinearLayout> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout>
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# listview刷新单个item
# listview
# item刷新
# listview局部刷新item
# Android实现listview动态加载数据分页的两种方法
# android ListView内数据的动态添加与删除实例代码
# android动态布局之动态加入TextView和ListView的方法
# Android实现Listview异步加载网络图片并动态更新的方法
# Android编程实现动态更新ListView的方法
# Android listview动态加载列表项实现代码
# Android实现ListView数据动态加载的方法
# Android通过Handler与AsyncTask两种方式动态更新ListView(附源码)
# Android ListView中动态显示和隐藏Header&Footer的方法
# Android ListView中headerview的动态显示和隐藏的实现方法
# Android开发中Listview动态加载数据的方法示例
# 的是
# 来看看
# 这篇文章
# 每次都
# 多说
# 某项
# 有疑问
# convertView
# ViewGroup
# View
# getView
# null
# LayoutInflater
# parent
# holder
# Object
# size
# getItem
# position
# long
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Android仿QQ列表左滑删除操作
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
佛山网站制作系统,佛山企业变更地址网上办理步骤?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
Java类加载基本过程详细介绍
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
详解jQuery停止动画——stop()方法的使用
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
香港服务器租用每月最低只需15元?
Laravel如何配置任务调度?(Cron Job示例)
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
教你用AI润色文章,让你的文字表达更专业
如何用VPS主机快速搭建个人网站?
如何在阿里云购买域名并搭建网站?
详解jQuery中基本的动画方法
如何快速搭建安全的FTP站点?
Laravel怎么判断请求类型_Laravel Request isMethod用法
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
Bootstrap整体框架之JavaScript插件架构
个人网站制作流程图片大全,个人网站如何注销?
音乐网站服务器如何优化API响应速度?
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
如何有效防御Web建站篡改攻击?
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
C++用Dijkstra(迪杰斯特拉)算法求最短路径
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
微信推文制作网站有哪些,怎么做微信推文,急?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
如何基于云服务器快速搭建网站及云盘系统?
如何选择PHP开源工具快速搭建网站?
简单实现Android文件上传
如何用低价快速搭建高质量网站?
🚀拖拽式CMS建站能否实现高效与个性化并存?
什么是javascript作用域_全局和局部作用域有什么区别?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
三星、SK海力士获美批准:可向中国出口芯片制造设备
javascript基于原型链的继承及call和apply函数用法分析
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
如何在局域网内绑定自建网站域名?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何确保西部建站助手FTP传输的安全性?
如何在服务器上配置二级域名建站?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
浅述节点的创建及常见功能的实现

