我使用我的ArrayAdapter扩展的getView方法。 我更改CheckBox但ListView不刷新
我的来源
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Planet to display
UrlItem urlItem = (UrlItem) this.getItem(position);
ViewHolder viewHolder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.database_table_item, null);
viewHolder = new ViewHolder();
viewHolder.checkbox = (CheckBox) convertView
.findViewById(R.id.checkBox1);
viewHolder.checkbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
int getPosition = (Integer) buttonView.getTag();
DatabaseTable.setPosition(getPosition);
for (int i = 0; i < UrlItems.size(); i ++ ) {
UrlItems.get(i).setUse(false);
}
UrlItems.get(getPosition).setUse(isChecked);
}
});
如何在更改后刷新列表?
用于清单集中的信息
<activity
android:name=".DatabaseTable"
android:label="database_table" android:windowSoftInputMode="adjustPan" >
使用“selectAll”按钮查看升级链接我有完全相同的想法,但没有按钮selectAll
答案 0 :(得分:1)
mAdapter.notifyDataSetChanged();
通知数据集已更改; )
答案 1 :(得分:1)
adapter.notifyDataSetChanged(); // to notify the adapter that your data has been updated
注意:如果上述行出现任何错误,您可以尝试以下代码(其中mListView是我的ListView对象的名称)
((BaseAdapter) mListView.getAdapter()).notifyDataSetChanged();
另一种方法是使List无效,以便再次从更新的数据集重新绘制。
mListView=(ListView) findViewById(R.id.MyListView);
mListView.invalidate();