У меня примерно следующая иерархия id:
<DrawerLayout>
<CoordinatorLayout>
<CoordinatorLayout>
<FrameLayout> id=name1
<FrameLayout> id=name1_1
<FrameLayout> id=name1_2
И есть еще один фрагмент, который отдельно:
<CardView> id=name2
<ImageView> id=name2_1
<TextView> id=name2_2
<TextView> id=name2_3
В своем MainActivity я могу получить элемент с id=name1, написав просто findViewById(R.id.name1), с name1_1 и name1_2 - уже findViewById(R.id.name1).findViewById(R.id.name1_1), например.
Затем в коде я поступаю следующим образом:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.name1_2, new MyFragment())
.commitAllowingStateLoss();
Где MyFragment имеет разметку элемента c id=name2:
public class MyFragment extends android.support.v4.app.Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.name2, container, false);
В итоге, по идее, я должен буду получить элементы name2_1 и name2_2 вот так: findViewById(R.id.name1).findViewById(R.id.name2).findViewById(R.id.name2_1),
однако, findViewById(R.id.name1).findViewById(R.id.name2) возвращает нужный элемент, а вот findViewById(R.id.name1).findViewById(R.id.name2).findViewById(R.id.name2_1) уже возвращает null.
В чем проблема и как правильно достать из кода элементы name2_1 и name2_2, с учетом подмены фрагментом? Если бы изначально была такая же иерархия, я бы получил нужный элемент, а пока что я получаю null.
Неправильно извлекаете, надо извлекать id из вьюшки которую получили инфлейтом, типа:
public class MyFragment extends android.support.v4.app.Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.name2, container, false);
View view_name2_1=v.findViewById(R.id.name2_1);
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости