使い方をまとめました。こちらの記事は考察なども含まれてるので、簡潔に分かりたい場合はこちらを参照してください
fragment内から、findViewByIdを使う方法を調べたら、
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.frag1, container,false); rootView.findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); return rootView; }
みたいな解決方法が多々見受けられたのですが、これじゃ、ライフサイクル内部でしか参照できないじゃん。という、疑問が出てしまうのですが、結局なところ、使い易くする為には、
View rootView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { rootView = inflater.inflate(R.layout.frag1, container,false); return rootView; }
とすると、rootViewがどこからでも参照可能。なので、これにしました。
で、ライフサイクルが存在してくれてるので、
@Override public void onDestroy() { rootView = null; super.onDestroy(); }
をしておけばメモリ的にも安心かと思います。