「Android/レイアウト/カスタムレイアウトファイルをjavaで取得」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「=="android.view.InflateException: Binary XML file Error inflating class inflater.inflate("エラーが出る時==」) |
|||
行1: | 行1: | ||
+ | CustomView itemLayout = (CustomView)inflater.inflate(R.layout.costum1, null); | ||
+ | |||
+ | res/layout/custom1.xml | ||
+ | <pre> | ||
+ | <jp.co.hoge.hogeproject.CustomView xmlns:android="http://schemas.android.com/apk/res/android" | ||
+ | android:orientation="vertical" | ||
+ | android:layout_width="wrap_content" | ||
+ | android:layout_height="match_parent" | ||
+ | > | ||
+ | <TextView | ||
+ | android:id="@+id/bodyView" | ||
+ | android:layout_width="wrap_content" | ||
+ | android:layout_height="wrap_content" | ||
+ | android:text="hoge" | ||
+ | /> | ||
+ | </jp.co.hoge.hogeproject.CustomView> | ||
+ | </pre> | ||
+ | |||
=="android.view.InflateException: Binary XML file Error inflating class inflater.inflate("エラーが出る時== | =="android.view.InflateException: Binary XML file Error inflating class inflater.inflate("エラーが出る時== | ||
+ | publicのconstructを4つすべて作成すると治る。 | ||
+ | <pre> | ||
+ | public class CustomView extends LinearLayout { | ||
+ | public CustomView(Context context) { | ||
+ | super(context); | ||
+ | } | ||
+ | public CustomView(Context context, AttributeSet attrs) { | ||
+ | super(context, attrs); | ||
+ | } | ||
+ | public CustomView(Context context, AttributeSet attrs, int defStyleAttr) { | ||
+ | super(context, attrs, defStyleAttr); | ||
+ | } | ||
+ | @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) | ||
+ | public CustomView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { | ||
+ | super(context, attrs, defStyleAttr, defStyleRes); | ||
+ | } | ||
+ | } | ||
+ | </pre> |
2019年8月27日 (火) 12:19時点における版
CustomView itemLayout = (CustomView)inflater.inflate(R.layout.costum1, null);
res/layout/custom1.xml
<jp.co.hoge.hogeproject.CustomView xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="match_parent" > <TextView android:id="@+id/bodyView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hoge" /> </jp.co.hoge.hogeproject.CustomView>
"android.view.InflateException: Binary XML file Error inflating class inflater.inflate("エラーが出る時
publicのconstructを4つすべて作成すると治る。
public class CustomView extends LinearLayout { public CustomView(Context context) { super(context); } public CustomView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public CustomView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } }