Не получается найти элемент по id во фрагменте

После создания фрагмента я использую метод findViewbyId, который должен возвращать мне вложенный список. Вложенный список находится во фрагменте. Но поиск по id возвращает null и приложение падает. Предварительное получение самого фрагмента с помощь фрагмент менеджера тоже возвращает null.

Можно ли получить доступ к view элементам фрагмента если он динамически загружается? Если да, то как это правильно сделать?

public class MainActivity extends Activity {

    private FragmentManager fragmentManager;
    private ConvertsFragment convertsFragment;
    private MainFragment mainFragment;
    private StorageFragment storageFragment;
    private ImageButton converts_button;
    private ImageButton home_button;
    private ImageButton storage_button;
    private Button settings_button;

    private String[] mGroupsArray = new String[] { "Зима", "Весна"};
    private String[] mWinterMonthsArray = new String[] { "Декабрь", "Январь", "Февраль" };
    private String[] mSpringMonthsArray = new String[] { "Март", "Апрель", "Май" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.storage_and_converts_layout);

        converts_button=findViewById(R.id.converts_button);
        home_button=findViewById(R.id.home_button);
        storage_button=findViewById(R.id.storage_button);
        convertsFragment=new ConvertsFragment();
        mainFragment=new MainFragment();
        storageFragment=new StorageFragment();
        fragmentManager = getFragmentManager();
        settings_button=findViewById(R.id.settings_button);
    }

    public void ClickFragmentButton(View view){
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        switch (view.getId()) {
            case R.id.home_button:
                if (fragmentManager.findFragmentByTag(MainFragment.TAG) == null) {
                    fragmentTransaction.replace(R.id.fragment_layout, mainFragment, MainFragment.TAG);
                }
                break;
            case R.id.storage_button:
                if (fragmentManager.findFragmentByTag(StorageFragment.TAG) == null) {
                    fragmentTransaction.replace(R.id.fragment_layout, storageFragment, StorageFragment.TAG);
                }
                break;
            case R.id.converts_button:
                if (fragmentManager.findFragmentByTag(ConvertsFragment.TAG) == null) {
                    fragmentTransaction.replace(R.id.fragment_layout, convertsFragment, ConvertsFragment.TAG);
                }
                break;
        }
        fragmentTransaction.commit();
        switch (view.getId()) {
            case R.id.home_button:
                FillHistoryList();
                break;
            case R.id.converts_button:
                FillConvertsList();
                break;
        }
    }

    private void FillHistoryList(){
        Map<String, String> map;
        ArrayList<Map<String, String>> groupDataList = new ArrayList<>();
        for (String group : mGroupsArray) {
            map = new HashMap<>();
            map.put("groupName", group);
            groupDataList.add(map);
        }
        String groupFrom[] = new String[] { "groupName" };
        int groupTo[] = new int[] { android.R.id.text1 };
        ArrayList<ArrayList<Map<String, String>>> сhildDataList = new ArrayList<>();
        ArrayList<Map<String, String>> сhildDataItemList = new ArrayList<>();
        for (String month : mWinterMonthsArray) {
            map = new HashMap<>();
            map.put("monthName", month);
            сhildDataItemList.add(map);
        }
        сhildDataList.add(сhildDataItemList);
        сhildDataItemList = new ArrayList<>();
        for (String month : mSpringMonthsArray) {
            map = new HashMap<>();
            map.put("monthName", month);
            сhildDataItemList.add(map);
        }
        сhildDataList.add(сhildDataItemList);
        String childFrom[] = new String[] { "monthName" };
        int childTo[] = new int[] { android.R.id.text1 };
        SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(
                this, groupDataList,
                android.R.layout.simple_expandable_list_item_1, groupFrom,
                groupTo, сhildDataList, android.R.layout.simple_list_item_1,
                childFrom, childTo);
        ConvertsFragment f=(ConvertsFragment) fragmentManager.findFragmentByTag(MainFragment.TAG);
        ExpandableListView expandableListView=f.getView().findViewById(R.id.list_history_of_transactions);
        expandableListView.setAdapter(adapter);
    }

На вот этом моменте падает

ConvertsFragment f=(ConvertsFragment) fragmentManager.findFragmentByTag(MainFragment.TAG);
ExpandableListView expandableListView=f.getView().findViewById(R.id.list_history_of_transactions);
expandableListView.setAdapter(adapter);

.

public class MainFragment extends Fragment {
    public static final String TAG = "MainFragment";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view =  inflater.inflate(R.layout.main_fragment, null);
        return view;
    }
}

Ответы (0 шт):