2015-01-19 6 views
0

В моем приложении у меня есть активность, которая содержит два фрагмента.Выбор ListView не изменяется

Первый фрагмент содержит ViewPager, который содержит несколько фрагментов (первый фрагмент фрагментов viewpager содержит ListView). Второй фрагмент - это простой фрагмент настроек. Например, я проверил второй элемент в ListView, меня кликнули настройки, и мой второй фрагмент из активности открывается. Я нажимаю кнопку назад и я возвращаюсь к моему ListView, то я называю:

listView.setItemChecked(0, true); 
listView.setSelection(0); 

Но это не работает, второй элемент еще проверил ... Я иду от ViewPager ко второму фрагменту ниже в пути :

getSupportFragmentManager().beginTransaction() 
       .replace(R.id.slpdActivityLayout, fragment).addToBackStack(null).commit(); 

Почему мой выбор не работает, только когда я нажимаю кнопку «Назад»?

+0

Есть ли у SingleSelection на? – Mann

+0

«второй элемент по-прежнему проверен» - также проверен первый элемент? если да: тогда просто снимите флажок со второго (все остальные в цикле) , если нет: возможно, вам нужно обновить UI – Sharky

+0

Да, как этот 'AbsListView.CHOICE_MODE_SINGLE' – karoluch

ответ

0

Речь идет о жизненном цикле вашего фрагмента, как показано -> here <- Вы не можете обновлять пользовательский интерфейс в onCreateView. поэтому разместите свой код до onStart или лучше onResume.

удалить:

public void onCreateView() { 
    listView.setItemChecked(0, true); 
    listView.setSelection(0); 
} 

добавить:

public void onResume() { 
    listView.setItemChecked(0, true); 
    listView.setSelection(0); 
} 
+0

Итак, когда я вызываю 'getSupportFragmentManager () .beginTransaction() .replace (R.id.slpdActivityLayout, secondFragment) .addToBackStack (null) .commit(); 'в фрагменте активности с listView не уничтожается? Я вещь, которая уничтожена ... – karoluch

+0

вы можете легко проверить ее с помощью отладки метода 'onDestroy' или' onDestroyView' фрагмента – Sharky

+0

с уничтожением списка ListView ... так почему этот код не работает в методе 'onCreateView' ? – karoluch