我有一个 ListActivty 的自定义基本适配器。单击任何项目后,我正在尝试更新列表,这是我的 onListItemClick 代码:
@Override
protected void onListItemClick(ListView listView, View view, int position, long id) {
String pkg = mAdapter.getItem(position).toString();
boolean isProtected = ApplicationUtils.isPackageProtected(this, pkg) != null;
PreferenceUtils.setPreference(mContext, null, pkg, !isProtected, false);
mAdapter.notifyDataSetChanged();
}
但是,notifyDataSetChanged 不会更新列表视图。作为一种解决方法,我
@Override
protected void onListItemClick(ListView listView, View view, int position, long id) {
String pkg = mAdapter.getItem(position).toString();
boolean isProtected = ApplicationUtils.isPackageProtected(this, pkg) != null;
PreferenceUtils.setPreference(mContext, null, pkg, !isProtected, false);
Handler adapterHandler = new Handler();
adapterHandler.postDelayed(new Runnable() {
@Override
public void run() {
mAdapter.notifyDataSetChanged();
}
}, 500);
}
有人可以解释一下为什么会发生这种情况并告诉我是否有其他解决方案?
谢谢。