Android版本:找不到父视图
我的文件layout.xmlAndroid版本:找不到父视图
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_name"
android:hint="@string/name"
/>
</android.support.design.widget.TextInputLayout>
当我试图让家长在活动
EditText edit_name= (EditText) view.findViewById(R.id.edit_name);
TextInputLayout textInputLayout = (TextInputLayout) edit_name.getParent();
我错误:
java.lang.ClassCastException:android.widget.FrameLayout不能转换为androi d.support.design.widget.TextInputLayout
你需要设置ID在TextInputLayout与ID绑定,而不是用的getParent()。
谢谢。
感谢您的帮助 –
一种解决方法是将一个ID设置为这个TextInputLayout:
<android.support.design.widget.TextInputLayout
android:id="@+id/edit_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_name"
android:hint="@string/name"
/>
</android.support.design.widget.TextInputLayout>
而且
EditText edit_name= (EditText) view.findViewById(R.id.edit_name);
TextInputLayout textInputLayout = (TextInputLayout) view.findViewById(R.id.edit_input_layout);
首先,你将有一个ID添加一个设置为您TextInputLayout这样的:
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_name"
android:hint="@string/name"
/>
</android.support.design.widget.TextInputLayout>
之后,您可以像获取EditText一样获取TextInputLayout。
也许你想尝试TextInputLayout
的不同。
,而不是使用:
TextInputLayout textInputLayout = (TextInputLayout) edit_name.getParent();
,你可能会想尝试:
XML:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="testId" >
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_name"
android:hint="@string/name"
/>
</android.support.design.widget.TextInputLayout>
代码:
TextInputLayout textInputLayout = (TextInputLayout) findViewById(R.id.testId);
注意:TextInputLayout下的实际视图层次结构不是 ,保证与用XML编写的视图层次结构匹配。因此,对TextInputLayout的子项(如 TextInputEditText)的getParent()调用 可能不会返回TextInputLayout本身,而是 而不是中间视图。如果您需要直接访问View, 会设置android:id并使用findViewById(int)。
即解决您必须使用findViewById
代替getParent
问题。
您是否在下面检查了我的答案,对您有用吗? –