open_files_limit
内有一个EditText
TextInputLayout
+91
前缀TextView
。
EditText
但是当<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/activity_vertical_margin">
<android.support.design.widget.TextInputLayout
android:id="@+id/layoutMobile"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/etPhoneNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/txt_hint_phone"
android:imeOptions="actionDone"
android:inputType="phone"
android:maxLength="10"
android:maxLines="1"
android:minLines="1"
android:paddingLeft="30dp"
android:layout_marginBottom="10dp"
android:text="9736625345"
android:textColorHint="@color/colorBlack"
android:textSize="@dimen/sixteen_sp" />
</android.support.design.widget.TextInputLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
android:text="+91"
android:textSize="16sp" />
</RelativeLayout>
被赋予android:paddingLeft="30dp"
时,EditText
的提示和错误消息也会被转移!!
我希望TextInputLayout
的提示和错误消息保持左对齐,而TextInputLayout
应该有不可编辑的前缀。
实现此目的的正确方法是什么?
答案 0 :(得分:0)
尝试使用java: -
layoutMobile.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (make condition here according to you) {
// set error here <layoutMobile.setError();>
}
}
public void afterTextChanged(Editable edt) {
}
});
答案 1 :(得分:0)
如果您不想填充,可以帮助您调整视图。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="@dimen/activity_vertical_margin">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+91"
android:textSize="16sp" />
<android.support.design.widget.TextInputLayout
android:id="@+id/layoutMobile"
android:layout_width="0dp"
android:weight="1"
android:layout_height="wrap_content">
<EditText
android:id="@+id/etPhoneNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/txt_hint_phone"
android:imeOptions="actionDone"
android:inputType="phone"
android:maxLength="10"
android:maxLines="1"
android:minLines="1"
android:text="9736625345"
android:textColorHint="@color/colorBlack"
android:textSize="@dimen/sixteen_sp" />
</android.support.design.widget.TextInputLayout>
对于错误指示,请使用此java代码
mEditTextObject.setError("Error!")//to show error
mEditTextObject.setError(null)//to Remove Error
答案 2 :(得分:0)
尝试使用以下代码
设置edittext
的选择长度
EditText.setSelection(EditText.getText().length());