基本问题,但我解决问题的尝试失败了
我的活动包含以下内容
override def onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
setContentView(R.layout.match_list_view)
val listView = findViewById(R.id.matchListView).asInstanceOf[ListView]
listView.setAdapter(new MatchListViewAdapter(MatchDao.retrieveAllMatches(), this, listView))
}
显示ListView
中的匹配列表我的适配器在其getView方法中包含以下用于单个匹配的逻辑:
val deleteButton = updatedView.findViewById(R.id.deleteIndividualMatchButton).asInstanceOf[Button]
deleteButton.setOnClickListener(new OnClickListener {
override def onClick(v: View) {
new DeleteMatchDialogFragment(getItem(position), MatchListViewAdapter.this).show(activity.getFragmentManager, "DeleteFragment"
}
})
我的DeleteMatchDialogFragment包含以下逻辑:
override def onCreateDialog(savedInstanceState: Bundle): Dialog = {
createDialog(null, R.string.deleteMatch, R.string.ok, {
MatchDao.delete(matchToDelete)
adapter.notifyDataSetInvalidated()
})
}
所以基本上在ListView
中,我有一个匹配列表,每个匹配都有一个删除按钮。
当用户单击“删除”按钮时,我希望从数据库中删除匹配项,然后刷新ListView
。
一切正常,但视图未刷新。
我也尝试将view.invalidate()
添加到DeleteMatchDialogFragment
,但也没有运气。
我需要在这做什么?
答案 0 :(得分:-1)
当用户点击“删除”按钮时,我希望从中删除匹配项 数据库然后刷新ListView
要从ListView中删除项目,请创建一个方法MatchListViewAdapter
,该方法从getCount
方法中使用的同一数据源实例中删除项目,如:
public void removeItem(int pos){
this.dataContainer.remove(pos);
this.notifyDataSetChanged();
}
在removeItem
createDialog
方法中的MatchDao.delete(matchToDelete)
项