使用而不是在下面编辑文本
问题描述:
public class MainActivity extends Activity {
private EditText emailEditText;
private EditText passEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
emailEditText = (EditText) findViewById(R.id.editText_email);
passEditText = (EditText) findViewById(R.id.editText_password);
findViewById(R.id.btn_signup).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
final String email = emailEditText.getText().toString();
if (!isValidEmail(email)) {
emailEditText.setError("Invalid Email");
}
final String pass = passEditText.getText().toString();
if (!isValidPassword(pass)) {
passEditText.setError("Invalid Password");
}
}
});
}
我使用这个代码验证时显示在android系统的EditText错误消息右侧但是它显示了以下错误消息,我想显示相邻EditText
消息即;右边EditText
。使用而不是在下面编辑文本
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter your name" />
</android.support.design.widget.TextInputLayout>
当你想setError
只取它的TextInputLayout
和setError
参考,当错误被解决,然后由经过的null
其删除:
答
而是采用EditText
使用TextInputLayout
喜欢的在setError
答
要显示如您所示的错误消息,请使用我的代码,它的可行代码。
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_marginTop="20dp"
android:layout_height="wrap_content">
<EditText
android:id="@+id/userId"
android:inputType="text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:hint="User ID" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:inputType="textPassword"
app:passwordToggleEnabled="true"
android:layout_height="wrap_content">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:text=""
android:hint="Password" />
</android.support.design.widget.TextInputLayout>
<medmylife.deliverymedcine.font.Railway_Regular
android:layout_marginTop="10dp"
android:gravity="right"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Forget Password?"
android:textColor="@color/blue"
android:textSize="16dp"/>
<Button
android:layout_marginTop="20dp"
android:textSize="16dp"
android:id="@+id/loginBtn"
android:textAllCaps="false"
android:background="@color/blue"
android:layout_width="match_parent"
android:layout_height="50dp"
android:textColor="@color/white"
android:text="LOGIN"
/>
把下面的代码对你Activity.class
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (utils.haveNetworkConnection()) {
if (validationDetails()) {
jsonRequest();
}
}else {
utils.showtoast("Internet Connection Not Availble");
}
}
});
把下面的代码onCreate()
private boolean validationDetails() {
if (userId.getText().toString().isEmpty()) {
userId.setError("Enter User ID");
return false;
}
if (passwd.getText().toString().isEmpty()) {
passwd.setError("Enter Password");
return false;
}
return true;
}
之外多数民众赞成根据你的主题 – singularity
如果什么没有足够的空间在右边 ? –
@BatCat这个问题与你建议的不同 –