Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

findViewById within fragment

Is there any way to find a view by id within the scope of a fragment? I'm using a series of fragments to render a specialized list. The fragments are loaded from a layout, so their widgets all have the same ids.

I suppose I can figure out a way to give each widget a custom id during (or right after) creation. However, it would be a lot nicer if I could somehow limit the findViewById to the scope of the fragment.

like image 889
Peri Hartman Avatar asked Sep 11 '25 04:09

Peri Hartman


2 Answers

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;
}
like image 106
chris-tulip Avatar answered Sep 12 '25 18:09

chris-tulip


From inside the Fragment:

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

From the enclosing Activity:

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

or

getFragmentManager().findFragmentById(R.id.your_fragment).getView().findViewById(R.id.your_view);
like image 33
Michael Celey Avatar answered Sep 12 '25 20:09

Michael Celey