Подтвердить что ты не робот

FindViewById в фрагменте

Есть ли способ найти представление по id в пределах области фрагмента? Я использую серию фрагментов для создания специализированного списка. Фрагменты загружаются из макета, поэтому их виджеты имеют одинаковые идентификаторы.

Я полагаю, что могу найти способ дать каждому виджету пользовательский идентификатор во время (или сразу после) создания. Однако было бы намного приятнее, если бы я каким-то образом ограничил findViewById областью действия фрагмента.

4b9b3361

Ответ 1

private View myFragmentView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
    myFragmentView = inflater.inflate(R.layout.myLayoutId, container, false);
    myView = myFragmentView.findViewById(R.id.myIdTag)

    return myFragmentView;
}

Ответ 2

Изнутри фрагмента:

getView().findViewById(R.id.your_view);

Из прилагаемой операции:

getFragmentManager().findFragmentByTag("YourFragmentTag").getView().findViewById(R.id.your_view);

или

getFragmentManager().findFragmentById(R.id.your_fragment).getView().findViewById(R.id.your_view);

Ответ 3

Вы можете сделать это с помощью getView().findViewById()

Ответ 4

Да, есть способ, вы можете найти его через rootView. Сначала найдите rootView вашего фрагмента rootView=getView();, а затем используйте rootView.findViewById(...);

Ответ 5

  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootview=null;

             rootview=inflater.inflate(R.layout.fragment_web_view, container, false);
           ListView lv = (ListView)rootview.findViewById(android.R.id.list);

return rootview;
        // Inflate the layout for this fragment
        //return inflater.inflate(R.layout.fragment_web_view, container, false);
    }