android ArrayAdapter 如何动态更改数据
使用adpater与listview捆绑后,有时希望在程序使用过程中能动态的更改listview中显示的数据,如何处理?
一、关键代码段
| 代码如下 | 复制代码 |
| private ListView mListView; private Button mBtnChange; private android.view.View.OnClickListener mCancelClick; private ArrayList<String> mStarNameList = new ArrayList<String>(); private String[] mAnimalNameList = new String[] {"Dog","Cat","Snake","Duck","Bird"}; private String[] mStarNameList1 = new String[] {"Kobe","James","Durant","Wade","Love"}; private ArrayAdapter<String> mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.setCtrlsEventHandler(); this.mAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked,mStarNameList); this.mListView = (ListView)findViewById(R.id.listView1); this.mBtnChange = (Button)findViewById(R.id.button1); this.mBtnChange.setOnClickListener(this.mCancelClick); this.mStarNameList.add("Kobe"); this.mStarNameList.add("James"); this.mStarNameList.add("Durant"); this.mStarNameList.add("Wade"); this.mListView.setAdapter(this.mAdapter); this.mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); } private boolean mIsMutex = false; private void setCtrlsEventHandler() { this.mCancelClick = new View.OnClickListener() { @Override public void onClick(View v) { if(mIsMutex) { mBtnChange.setText("True"); mStarNameList.clear(); for(int i=0;i<mAnimalNameList.length;i++) mStarNameList.add(mAnimalNameList[i]); mAdapter.notifyDataSetChanged(); mIsMutex = false; } else { mBtnChange.setText("False"); mStarNameList.clear(); for(int i=0;i<mStarNameList1.length;i++) mStarNameList.add(mStarNameList1[i]); mAdapter.notifyDataSetChanged(); mIsMutex = true; } } }; } |
|
功能实现主要原理:
用ArrayList mStarNameList 给Adapter填充数据,再将listview与adapter捆绑。
当要修改数据时候,只需要对mStarNameList 进行修改,再调用Adapter.notifyDataSetChanged()就可以实现效果。
二、执行效果


android ArrayAdapter 如何动态更改数据的更多相关文章
- Android应用中动态更改主题的实现
在android应用程序中我们可能需要切换模式,如晚上切换到夜间模式便于阅读等.本文参考了网上的一些资料,并结合实例,实现了动态更改主题的效果. Android中实现theme主题可以使用在activ ...
- Android之ListView动态添加数据(SQLiteOpenHelper类添加数据)
一.SQLiteOpenHelper类: 这次我们通过sqlite来动态添加数据,接下来我们创建一个openHelper.java,在前面sqlite博客中我们已经详细的讲了SQLite的创建及使用等 ...
- Flutter学习(8)——CheckBox多选框使用及动态更改多选框数据
原文地址:Flutter学习(8)--CheckBox多选框使用及动态更改多选框数据 | Stars-One的杂货小窝 最近项目需求需要调整页面,记录一下实现过程 这次主要是要实现个评价页面,选择不同 ...
- TabTopAutoLayout【自定义顶部选项卡区域(带下划线)(动态选项卡数据且可滑动)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 自定义顶部选项卡布局LinearLayout类,实现带下划线且可滑动效果.[实际情况中建议使用RecyclerView] 备注:如果 ...
- TabTopAutoTextSizeLayout【自定义文字字号区域(动态选项卡数据且可滑动)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 自定义顶部选项卡布局LinearLayout类,实现可滑动效果.[实际情况中建议使用RecyclerView] 对<TabTo ...
- 解决Android与服务器交互大容量数据问题
对于目前的状况来说,移动终端的网络状况没有PC网络状况那么理想.在一个Android应用中,如果需要接收来自服务器的大容量数据,那么就不得不考虑客户的流量问题.本文根据笔者的一个项目实战经验出发,解决 ...
- js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用 .
js简单显示和隐藏div .<!DOCTYPE html> .<html> .<head> .<meta charset="UTF-8"& ...
- Android中的动态加载机制
在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本 ...
- 微信小程序动态更改样式
获取列表长度(动态渲染),当长度>x时添加内联样式并绑定数据{{}},通过js动态更改{{}}
随机推荐
- CRC-16/XMODE X16+X12+X5+1 C#、C和java环境下实现
private byte[] CRC(byte[] x, int len) //CRC校验函数 { ]; UInt16 crc = ; byte da; ; UInt16[] yu = { 0x000 ...
- 在Windows Server 2008中安装IIS
1.右键“我的电脑”,选择“管理”,打开“服务器管理器” 2.点击左边菜单栏“角色”调出角色窗口 3.接着点击“添加角色”,弹出添加“角色向导” 4.点击“下一步”进入服务器角色选项 5.勾选“Web ...
- SU suamp命令学习
- SU Demos-03T-F Analysis-02Sutvband
第一个脚本,生成震源扫描信号,并进行gabor变换 运行结果, 第二个脚本,利用时变滤波从和信号中重建单独的3个扫描信号 运行结果
- SQL 计算列
SQL计算列,可以解决一般标量计算(数学计算,如ColumnA*ColumnB)的问题,而子查询计算(如select sum(salary) from tableOther where id=’ABC ...
- 时间工厂[XDU1013]
Problem 1013 - 时间工厂 Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 384 Acce ...
- HDU 1026 (BFS搜索+优先队列+记录方案)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1026 题目大意:最短时间内出迷宫.迷宫里要杀怪,每个怪有一定HP,也就是说要耗一定时.输出方案. 解 ...
- 关于JS中作用域的销毁和不销毁的情况总结
window全局作用域->页面关掉才销毁函数执行会形成私有的作用域 1)作用域的销毁 一般情况下,函数执行形成一个私有的作用域,当执行完成后就销毁了->节省内存空间 2)作用域的不立即销毁 ...
- FLTK 1.3.3 VS 2010 Configuration 配置
Download FLTK 1.3.3 Download VS2010 I assume you've already installed VS2010 correctly. Compile the ...
- OpenCV 3.0 VS2010 Configuration
Add in the system Path: C:\opencv\build\x86\vc10\bin; Project->Project Property->Configuration ...