ListView
中的所有数据均由 CursorAdapter
提供。
每当我按下后退按钮并返回
到 Activity 时,然后单击该 Activity 以启动我的 fragment
,所有以前的数据仍然在那里堆叠在一起。
最佳答案
1) 创建接口(interface)BackPressedListener
:
public interface BackPressedListener {
void onBackPressed();
}
2) 在您的 Activity 中,您可以覆盖 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) 在您的 fragment
上实现接口(interface)
BackPressedListener
。您将覆盖 fragment
中的 onBackPressed
方法,清除包含元素的 list
,然后通知 adapter
变化如下:
@Override
public void onBackPressed()
{
arrayList.clear();
adapter.notifyDataSetChanged();
finish();
}
关于android - 按下后退按钮时如何清除 Fragment 上的 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47626321/