您好我已经为TextInputLayout创建了自定义组件。我想将提示文本设置为TextInputLayout。我正在添加自定义类,它将TextInputLayout扩展到我的根布局中。我按照以下方式尝试了它:
<android.support.design.widget.TextInputLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColorHint="@color/gray"
android:theme="@style/editTextSelectedTheme"
android:layout_marginTop="@dimen/margin_10"
>
<EditText
android:id="@+id/form_et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
public class FormEditText extends TextInputLayout
{
TextInputLayout view;
public FormEditText(Context context) {
super(context);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = (TextInputLayout)inflater.inflate(R.layout.form_edit_text, this, true);
initUI();
}
public FormEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FormEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
}
最后在我的片段中:
FormEditText gadgetName = new FormEditText(getContext());
gadgetName.setHint(getResources().getString(R.string.gadget_name_hint));
formContainer.addView(gadgetName);
上面的代码在我的视图中添加了新的TextInputLayout,但没有为它添加提示文本。我做错了吗?需要一些帮助。谢谢。
我根据以下评论做了一些修改。
public class FormEditText extends LinearLayout
view = inflater.inflate(R.layout.form_edit_text, this, true);
现在它根据需要显示提示文本。但现在它没有显示我的编辑文本值。它没有获取任何输入值。