Как проверить, существует ли фрагмент?
Я пытаюсь поговорить с фрагментом из activity, но я не уверен, виден ли фрагмент или нет. Если фрагмент не существует, я даже не могу выполнить проверку null, поскольку он создает исключение из-за приведения.
Как проверить, существует ли фрагмент?
PlayerFragment = (PlayerFragment) mManager.findFragmentById(R.id.bottom_container);
playerFragment.onNotificationListener.updateUI();
2 ответов
Не бросайте его сначала.
Fragment f = mManager.findFragmentById(R.id.bottom_container);
if(f != null && f instanceof PlayerFragment) {
PlayerFragment playerFragment = (PlayerFragment) f;
playerFragment.onNotificationListener.updateUI();
}
Если это не работает, опубликуйте stacktrace с исключением, которое вы получаете.
литье null
для ссылки не будет выдавать исключение, для примитива это будет.
использовать findFragmentById()
или findFragmentByTag()
чтобы получить ссылку и проверить, если его null, если нет, проверьте ссылку isAdded()
или isVisible()
.
PlayerFragment p = (PlayerFragment) mManager.findFragmentById(R.id.bottom_container);
if( p != null && p.isAdded()){
p.onNotificationListener.updateUI();
}