【Android】FragmentでfindViewByIdをしてButtonなどを取得する
こんにちは。
Fragmentでレイアウトファイルのほうで作成したButtonを、ActivityでやっているとおりfindViewByIdで取得しようとすると、エラーが出ます。
findViewByIdはFragmentでは定義されていないからです。
そこで、今回はFragmentでfindViewByIdをする方法を書きたいと思います。
一応やり方が迷ったので載せますが、かなり簡単です!
ちなみにFragmentについてはこちらの記事を参考にしてもらうとわかると思います!
以下ソースコードです。
public class FragmentTest extends Fragment implements OnClickListener{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ // 第3引数のbooleanは"container"にreturnするViewを追加するかどうか //trueにすると最終的なlayoutに再度、同じView groupが表示されてしまうのでfalseでOKらしい View v = inflater.inflate(R.layout.fragment_test, container, false); // ボタンを取得して、ClickListenerをセット Button btn = (Button)v.findViewById(R.id.FragmentTestButton); btn.setOnClickListener(this); return v; } @Override public void onClick(View v) { // TODO 自動生成されたメソッド・スタブ } }
以上です。今回は無名関数は使っていません。
やったこととしては、inflater でViewを持ってきて、ViewからfindViewByIdをしただけです。
簡単ですね!
それでは。