カスタムビューと同様に、FragmentにおいてもAndroid XMLで独自の属性をコード側に渡すことが出来る。
Fragment.onInflateで、もらえる。
strings.xmlで、
fragment1_textview_textで、Fragment1と定義。
attrs.xmlで、
Fragment1の独自属性文字列custom_data。
fragment1_main.xmlで、
fragment1_textviewで、fragment1_textview_textをセット。
activity_main.xmlで、
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <fragment xmlns:app="http://schemas.android.com/apk/res/com.bgstation0.android.sample.fragment_" android:id="@+id/fragment1" android:name="com.bgstation0.android.sample.fragment_.Fragment1" android:layout_width="match_parent" android:layout_height="match_parent" app:custom_data="ABCDE" /> </LinearLayout>
custom_dataは"ABCDE"。
Fragment1.javaは、
res.obtainAttributesでaを取得し、a.getStringでcustom_dataをmCustomDataに格納。
mCustomDataをtextview1.setTextでセット。
小さいけど"ABCDE"と出る。
"VWXYZ"にすると、
"VWXYZ"に変わる。
Sample/android/Fragment/onInflate/src/Fragment at master · bg1bgst333/Sample · GitHub