【www.bbyears.com--php常用代码】
使用adpater与listview捆绑后,有时希望在程序使用过程中能动态的更改listview中显示的数据,如何处理?
一、关键代码段
代码如下
private ListView mListView;
private Button mBtnChange;
private android.view.View.OnClickListener mCancelClick;
private ArrayList
private String[] mAnimalNameList = new String[] {"Dog","Cat","Snake","Duck","Bird"};
private String[] mStarNameList1 = new String[] {"Kobe","James","Durant","Wade","Love"};
private ArrayAdapter
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.setCtrlsEventHandler();
this.mAdapter = new ArrayAdapter
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
mAdapter.notifyDataSetChanged();
mIsMutex = false;
}
else
{
mBtnChange.setText("False");
mStarNameList.clear();
for(int i=0;i
mAdapter.notifyDataSetChanged();
mIsMutex = true;
}
}
};
}
功能实现主要原理:
用ArrayList
当要修改数据时候,只需要对mStarNameList 进行修改,再调用Adapter.notifyDataSetChanged()就可以实现效果。
二、执行效果