フラグメントの XML で作成した ImageView 要素を参照する ImageView をフラグメント内に作成しようとしています。ただし、このメソッドはfindViewById
Activity クラスを拡張した場合にのみ機能します。フラグメントでも使用できる方法はありますか?
public class TestClass extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ImageView imageView = (ImageView)findViewById(R.id.my_image);
return inflater.inflate(R.layout.testclassfragment, container, false);
}
}
メソッドfindViewById
には、メソッドが未定義であることを示すエラーがあります。
ベストアンサー1
使用取得ビュー()または、メソッドを実装した View パラメータonViewCreated
。フラグメントのルート ビュー(メソッドによって返されるビューonCreateView()
) を返します。これを使用して、 を呼び出すことができますfindViewById()
。
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
ImageView imageView = (ImageView) getView().findViewById(R.id.foo);
// or (ImageView) view.findViewById(R.id.foo);
}
getView()
は の後でのみ機能するためonCreateView()
、フラグメント のまたはメソッド内では使用できません。onCreate()
onCreateView()