FindViewById в фрагменте
Есть ли способ найти представление по id в пределах области фрагмента? Я использую серию фрагментов для создания специализированного списка. Фрагменты загружаются из макета, поэтому их виджеты имеют одинаковые идентификаторы.
Я полагаю, что могу найти способ дать каждому виджету пользовательский идентификатор во время (или сразу после) создания. Однако было бы намного приятнее, если бы я каким-то образом ограничил findViewById областью действия фрагмента.
Ответы
Ответ 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);
}