0
这里我的代码我ListFragment内(我使用上下文菜单):ListFragment不会刷新
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
.getMenuInfo();
Log.d(TAG, "onContextItemSelected clicked");
long id = info.id;
Log.d(TAG, "list id " + id);
int menuItemIndex = item.getItemId();
Log.d(TAG, "menuItemIndex " + menuItemIndex);
if (menuItemIndex == 0) {
try {
plantManager.deletePlantRelation(id);
CharSequence text = getActivity().getString(
R.string.info_could_delete_plant);
Toast toast = Toast.makeText(getActivity(), text,
Toast.LENGTH_LONG);
toast.show();
loader = getLoaderManager().restartLoader(0, null, this);
myAdapter.notifyDataSetChanged();
} catch (Exception ex) {
ex.printStackTrace();
CharSequence text = getActivity().getString(
R.string.info_could_not_delete_plant);
Toast toast = Toast.makeText(getActivity(), text,
Toast.LENGTH_LONG);
toast.show();
}
}
return true;
}
执行的方法,我也得到了吐司 - 消息 - 但名单不会刷新。
期待您的帮助。
在此先感谢!
更新:
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
return new CursorLoader(getActivity()) {
@Override
public Cursor loadInBackground() {
myCursor = plantManager.fetchPlantRelations();
return myCursor;
}
};
}
我想我们将需要看到onCreateLoader的代码。如果deletePlantRelation实际上从基础数据集中删除了这个项目,那么你不应该同时重启loader *和* notifyDataSetChanged ... – 2013-02-28 20:24:45
是从数据库中删除数据集 - 我已经检查过它 – user1800825 2013-02-28 21:00:40
好吧,这不是一个巨大的帮助:fetchPlantRelations做什么?但是,这里的观点是,这些都不是必要的。请参阅下面的答案。 – 2013-02-28 21:06:53