EditText 更改 setError 文本位置
EditText change setError text position
那么我要实现的内容有两个部分
一个即时消息给我的 edittext 我正在使用的 passwordToggle
android.support.design.widgetTextInputLayout+TextInputEditText
这就是我的编辑文本的样子
第二部分是我想添加验证并设置适当的错误消息。
我需要错误信息显示如下
我的布局代码如下
<android.support.design.widget.TextInputLayout
style="@style/editTextBold"
android:id="@+id/input_pwd_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintAnimationEnabled="false"
app:hintEnabled="false"
app:passwordToggleEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/input_pwd"
style="@style/editTextBold"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:ems="10"
android:hint="@string/hint_pwd"
android:inputType="textPassword"
android:padding="10dp" />
</android.support.design.widget.TextInputLayout>
所以我想知道的是
1.How 我可以通过代码 hide/unhide 编辑文本中的密码切换图标吗?
2.Also 如何让 setError 消息出现在 passwordToggle 图标的位置(一旦我通过代码隐藏它)
已完成创建自定义视图
组件可以在这里找到
https://github.com/vnh1991/CustomValidatorEditText
将 lib 项目作为模块导入,
在您的布局中创建一个容器
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.v2dev.customedittextdemo.MainActivity">
<LinearLayout
android:id="@+id/llContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="vertical"></LinearLayout>
<Button
android:id="@+id/btnValidate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_below="@+id/llContainer"
android:padding="10dp"
android:text="Validate" />
</RelativeLayout>
然后在您的 activity 中将组件加载到容器中
package com.v2dev.customedittextdemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.v_sQr_dev.customvalidatoredittext.CustomEdittext;
public class MainActivity extends AppCompatActivity {
private LinearLayout llContainer;
private Button btnValidate;
private CustomEdittext inputPwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
llContainer = (LinearLayout) findViewById(R.id.llContainer);
btnValidate = (Button) findViewById(R.id.btnValidate);
inputPwd = new CustomEdittext(llContainer, this);
inputPwd.setHint("PASSWORD");
btnValidate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(inputPwd.validate()){
Toast.makeText(MainActivity.this,"Input Valid",Toast.LENGTH_SHORT).show();
}
}
});
}
}
那么我要实现的内容有两个部分
一个即时消息给我的 edittext 我正在使用的 passwordToggle android.support.design.widgetTextInputLayout+TextInputEditText
这就是我的编辑文本的样子
第二部分是我想添加验证并设置适当的错误消息。 我需要错误信息显示如下
我的布局代码如下
<android.support.design.widget.TextInputLayout
style="@style/editTextBold"
android:id="@+id/input_pwd_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintAnimationEnabled="false"
app:hintEnabled="false"
app:passwordToggleEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/input_pwd"
style="@style/editTextBold"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:ems="10"
android:hint="@string/hint_pwd"
android:inputType="textPassword"
android:padding="10dp" />
</android.support.design.widget.TextInputLayout>
所以我想知道的是
1.How 我可以通过代码 hide/unhide 编辑文本中的密码切换图标吗?
2.Also 如何让 setError 消息出现在 passwordToggle 图标的位置(一旦我通过代码隐藏它)
已完成创建自定义视图
组件可以在这里找到
https://github.com/vnh1991/CustomValidatorEditText
将 lib 项目作为模块导入,
在您的布局中创建一个容器
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.v2dev.customedittextdemo.MainActivity">
<LinearLayout
android:id="@+id/llContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="vertical"></LinearLayout>
<Button
android:id="@+id/btnValidate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_below="@+id/llContainer"
android:padding="10dp"
android:text="Validate" />
</RelativeLayout>
然后在您的 activity 中将组件加载到容器中
package com.v2dev.customedittextdemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.v_sQr_dev.customvalidatoredittext.CustomEdittext;
public class MainActivity extends AppCompatActivity {
private LinearLayout llContainer;
private Button btnValidate;
private CustomEdittext inputPwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
llContainer = (LinearLayout) findViewById(R.id.llContainer);
btnValidate = (Button) findViewById(R.id.btnValidate);
inputPwd = new CustomEdittext(llContainer, this);
inputPwd.setHint("PASSWORD");
btnValidate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(inputPwd.validate()){
Toast.makeText(MainActivity.this,"Input Valid",Toast.LENGTH_SHORT).show();
}
}
});
}
}