フラグメントのスコープ内でIDでビューを見つける方法はありますか?一連のフラグメントを使用して、特殊なリストをレンダリングしています。フラグメントはレイアウトからロードされるため、それらのウィジェットはすべて同じIDを持ちます。
作成中(または作成直後)に各ウィジェットにカスタムIDを与える方法を見つけられると思います。ただし、findViewByIdをフラグメントのスコープに何らかの方法で制限できれば、もっといいでしょう。
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;
}
フラグメント内から:
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);
getView().findViewById()
でできます
はい、方法があります。rootViewで見つけることができます。最初にフラグメントrootView=getView();
のrootViewを見つけてから、rootView.findViewById(...);
を使用します
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);
}