-1
У меня есть активность, в которой случайно загружен фрагмент. А также есть кнопка, которая случайным образом изменяет фрагмент. Накладываются один на другой фрагмент. Как очистить предыдущий фрагмент?Как удалить предыдущий фрагмент?
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {initUI();}});
private void initUI() {
ft = getFragmentManager().beginTransaction();
setRandomFragment();
}
private void setRandomFragment() {
Random random = new Random();
int randomFragmentNum = random.nextInt(150);
if (randomFragmentNum < 50) {
randomFragmentNum = 0;
ft.addToBackStack(null);
} else if (randomFragmentNum < 100) {
randomFragmentNum = 1;
ft.addToBackStack(null);
} else if (randomFragmentNum < 150) {
randomFragmentNum = 2;
}
//random choose fragment
switch (randomFragmentNum) {
case 0: {
fragment1 = new LevelOneMyach();
ft.add(R.id.fragCont, fragment1);
ft.commit();
break;
}
case 1: {
fragment2 = new LevelOneTucha();
ft.add(R.id.fragCont, fragment2);
ft.commit();
break;
}
case 2: {
fragment3 = new LevelOneIaschik();
ft.add(R.id.fragCont, fragment3);
ft.commit();
break;
}
}
}
Используйте 'заменить' вместо 'добавить' – user543
возможного дубликата [Удалить старый фрагмент из управляющего фрагмента] (http://stackoverflow.com/questions/22474584/ remove-old-fragment-from-fragment-manager) – Nanites
Спасибо! «Заменить» помогло мне –