来自ListView
的所有数据均由 CursorAdapter
提供。
每当我按下后退按钮并return
进行活动时,点击活动即可启动fragment
,所有以前的数据仍然堆叠在一起。
答案 0 :(得分:1)
1)创建一个界面BackPressedListener
:
public interface BackPressedListener {
void onBackPressed();
}
2)在您的活动中,您可以覆盖onBackPressed()
:
@Override
public void onBackPressed() {
List<Fragment> fragmentList = getSupportFragmentManager().getFragments();
if (fragmentList != null) {
for(Fragment fragment : fragmentList){
if(fragment instanceof BackPressedListener){
((BackPressedListener)fragment).onBackPressed();
}
}
}
}
3)在interface
上实施BackPressedListener
fragment
。您可以覆盖onBackPressed
中的fragment
方法,清除包含这些元素的list
,然后将adapter
更改通知如下:
@Override
public void onBackPressed()
{
arrayList.clear();
adapter.notifyDataSetChanged();
finish();
}
答案 1 :(得分:0)
按下后退按钮后返回活动时:
arraylist.clear();
adapter.notifyDataSetChanged();
答案 2 :(得分:0)
你可以尝试
try {
arraylist.clear();
listView.removeAllViews();
}catch (Exception e){
}
答案 3 :(得分:0)
在片段中设置public
一个方法,该方法将清除您的列表,并使用片段的实例在其父活动onBackPressed
上调用该方法。