ListView Adapter动态更改数据实例

简介:     使用adpater与listview捆绑后,有时希望在程序使用过程中能动态的更改listview中显示的数据,如何处理? 一、关键代码段 private ListView mListView; ...

    使用adpater与listview捆绑后,有时希望在程序使用过程中能动态的更改listview中显示的数据,如何处理?

一、关键代码段


  1. private ListView mListView;
  2.     private Button mBtnChange;
  3.     private android.view.View.OnClickListener mCancelClick;
  4.     private ArrayListString> mStarNameList = new ArrayListString>();
  5.     private String[] mAnimalNameList = new String[] {"Dog","Cat","Snake","Duck","Bird"};
  6.     private String[] mStarNameList1 = new String[] {"Kobe","James","Durant","Wade","Love"};
  7.     private ArrayAdapterString> mAdapter;
  8.     @Override
  9.     protected void onCreate(Bundle savedInstanceState) {
  10.         super.onCreate(savedInstanceState);
  11.         setContentView(R.layout.activity_main);
  12.         this.setCtrlsEventHandler();
  13.         this.mAdapter = new ArrayAdapterString>(this,android.R.layout.simple_list_item_checked,mStarNameList);
  14.         this.mListView = (ListView)findViewById(R.id.listView1);
  15.         this.mBtnChange = (Button)findViewById(R.id.button1);
  16.         this.mBtnChange.setOnClickListener(this.mCancelClick);
  17.         this.mStarNameList.add("Kobe");
  18.         this.mStarNameList.add("James");
  19.         this.mStarNameList.add("Durant");
  20.         this.mStarNameList.add("Wade");
  21.         this.mListView.setAdapter(this.mAdapter);
  22.         this.mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
  23.     }
  24.     private boolean mIsMutex = false;
  25.     private void setCtrlsEventHandler()
  26.     {
  27.         this.mCancelClick = new View.OnClickListener()
  28.         {
  29.             @Override
  30.             public void onClick(View v)
  31.             {
  32.                 if(mIsMutex)
  33.                 {
  34.                     mBtnChange.setText("True");
  35.                     mStarNameList.clear();
  36.                     for(int i=0;imAnimalNameList.length;i++)
  37.                         mStarNameList.add(mAnimalNameList[i]);
  38.                     mAdapter.notifyDataSetChanged();
  39.                     mIsMutex = false;
  40.                 }
  41.                 else
  42.                 {
  43.                     mBtnChange.setText("False");
  44.                     mStarNameList.clear();
  45.                     for(int i=0;imStarNameList1.length;i++)
  46.                         mStarNameList.add(mStarNameList1[i]);
  47.                     mAdapter.notifyDataSetChanged();
  48.                     mIsMutex = true;
  49.                 }
  50.             }
  51.         };
  52.     }


功能实现主要原理:

    用ArrayList mStarNameList 给Adapter填充数据,再将listview与adapter捆绑。

    当要修改数据时候,只需要对mStarNameList 进行修改,再调用Adapter.notifyDataSetChanged()就可以实现效果。

 

二、执行效果

image

image



参考文献:

http://www.pocketdigi.com/20100827/75.html

相关文章
|
计算机视觉
RecyclerView#Adapter支持无数据布局、错误布局和列表尾部的”没有更多了“布局
实际开发中,UI小姐姐都会提供通用的`无数据页面`、`错误提示页面`。 针对常见的`支持下拉刷新和上拉加载更多的列表页面`,将他们的通用逻辑抽取出来,这样我们在开发过程中就只需要关注具体的业务逻辑了,无需每次通过cv来完善`无数据页面`、`错误提示页面`的逻辑了。
|
存储 缓存 索引
更好的 RecyclerView 表项子控件点击监听器
上篇介绍了一种新的监听 RecyclerView 表项点击事件的方法。实现了将点击事件和RecyclerView.Adapter解耦。这一篇介绍如何监听 RecyclerView 表项子控件点击事件。
597 0
|
Java Android开发
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(一)
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(一)
235 0
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(一)
【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )
【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )
595 0
【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )
|
Android开发
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(二)
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(二)
202 0
|
XML Android开发 数据格式
4-VI--☆ListView的封装支持多种条目
零、前言 [1.]封装了一晚,总算把多条目的ListView封装了一下 listview.gif 一、使用 1.初始化数据 ArrayList messages = new ArrayList(); messages.
858 0