博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android ArrayAdapter 如何动态更改数据
阅读量:5092 次
发布时间:2019-06-13

本文共 2017 字,大约阅读时间需要 6 分钟。

在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示,使用adpater与listview捆绑后,有时希望在程序使用过程中能动态的更改listview中显示的数据

使用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()就可以实现效果。

二、执行效果

image

image

转载于:https://www.cnblogs.com/wxmdevelop/p/5381936.html

你可能感兴趣的文章
gulp-API介绍
查看>>
CSS position属性---absolute与relative
查看>>
Perl新接触的小命令
查看>>
android--04activity的布局管理器
查看>>
win10系统的快捷键
查看>>
P1268 树的重量
查看>>
《我们不一样团队》项目需求分析改进
查看>>
软件构造 第三章第三节 抽象数据型(ADT)
查看>>
[Lintcode]118. Distinct Subsequences/[Leetcode]115. Distinct Subsequences
查看>>
java List的初始化
查看>>
Longest Palindromic Substring
查看>>
linux导出Mysql数据sql脚本
查看>>
循环神经网络(3)
查看>>
Jmeter自动化测试-----接口测试基本使用实例
查看>>
智力测试
查看>>
Linux修行学习,网站持更
查看>>
C语言实现链表
查看>>
css选择器权值
查看>>
在Openstack上创建并访问Kubernetes集群
查看>>
Java语言基础41-44--泛型与集合
查看>>