我有自定义的CursorAdapter,我在覆盖的bindView函数中设置了一个删除按钮。下面是代码,deletePhrase(id,context)只是一个使用提供删除功能的函数。我尝试了很多不同的东西使这个按钮与onClick为listitem分开,因为当我添加按钮或者它使项目本身的onclick不起作用所以我使textView可点击,我的观点是我可能有在途中失去了某处,并且有更好的方法来做到这一点。
Button delButton = (Button) view.findViewById(R.id.list_item_removeButton);
int id = cursor.getInt(cursor.getColumnIndex("_id"));
delButton.setTag(id);
delButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
int rowId = (Integer) v.getTag();
long ret = deletePhrase(rowId, v.getContext());
if (ret > 0) {
notifyDataSetChanged();
}
}
});
但现在我的问题是我要重置我在显示列表的片段中实现的Loader。现在在那个片段中,我有一个按钮来添加一个短语,最后调用它:
getLoaderManager().restartLoader(0, null, this);
因此,当我添加一个短语时,它会相应地更新UI,但是当我删除时,我似乎无法获得相同的功能,因为我从CursorAdapter类中执行此操作,我似乎无法看到获得对装载机的访问权限我可以灵活地使用任何可行的解决方案。也许我可以将deletePhrase函数移动到片段并从那里调用它,但是我必须将片段的正确实例放到CursorAdapter类中吗?对不起,我真的不知道我对Android和编程有点新鲜。