0
자연스럽게 android.view.InflateException
을 인스턴스화하는 동안 레이아웃 XML 파일을 해당 View 객체로 호출하는 방법은 무엇입니까? AttributeSet 매개 변수 및 throw
을 사용하여 생성자를 지우는 것은 금지됩니다.android.view.lnflateException을 (를) 다시 작성하는 방법
사용은 일반적인 생성자의 설정 : RuntimeException의에서
public TestView(Context context) {
this(context, null);
}
public TestView(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.gridViewStyle);
}
public TestView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
TypedArray a = context.obtainStyledAttributes(attrs,
com.android.internal.R.styleable.GridView, defStyle, 0);
int hSpacing = a.getDimensionPixelOffset(
com.android.internal.R.styleable.GridView_horizontalSpacing, 0);
setHorizontalSpacing(hSpacing);
int vSpacing = a.getDimensionPixelOffset(
com.android.internal.R.styleable.GridView_verticalSpacing, 0);
setVerticalSpacing(vSpacing);
int index = a.getInt(com.android.internal.R.styleable.GridView_stretchMode, STRETCH_COLUMN_WIDTH);
if (index >= 0) {
setStretchMode(index);
}
int columnWidth = a.getDimensionPixelOffset(com.android.internal.R.styleable.GridView_columnWidth, -1);
if (columnWidth > 0) {
setColumnWidth(columnWidth);
}
int numColumns = a.getInt(com.android.internal.R.styleable.GridView_numColumns, 1);
setNumColumns(numColumns);
index = a.getInt(com.android.internal.R.styleable.GridView_gravity, -1);
if (index >= 0) {
setGravity(index);
}
a.recycle();
}
문제가 무엇을 던져 수 있습니까? – Blackbelt
저는 제약 조건을 감안할 때 무엇을 성취하려고하는지 잘 모르겠습니다. 그러나,'View' 생성자에서 나오는'Exception '은 http://androidxref.com/4.4.2_r1/xref/frameworks/base/core/java/android/view/LayoutInflater.java#594 – laalto
을 참조하십시오. 클래스의 뷰 인스턴스를'GridView'로 변경하면서'AbsListView'를 확장 한'TestView'의 인플레이션 에러의 기원을 결정하는 것이 목적입니다. –