2013-03-12 91 views
1

我有几行代码来验证表单输入。但是,它不输出任何内容 - 只是一个空白框。请问我错过了什么?Android setError()保留空白

public void onClick(View view) 
{ 
    if(view.getId() == R.id.btnLogin) 
    { 
     TestClass.setUsername(txtUserName.getEditableText().toString()); 
     TestClass.setPassword(txtPassword.getEditableText().toString()); 

     if(TestClass.getUsername().toString().length() == 0) 
     { 
      this.txtUserName.setError("Incorrect input!"); 
     } 
     else if(TestClass.getPassword().toString().length() == 0) 
     { 
     this.txtPassword.setError("Incorrect input!"); 
     } 
     else 
     { 
       // do the login stuff here 
     } 
    } 
    } 
+0

可能重复[edittext.setError()在Android中不工作?](http://stackoverflow.com/questions/7747268/edittext-seterror-not-working-in-android) – njzk2 2013-03-12 13:02:52

+0

之前查询 – njzk2 2013-03-12 13:02:59

+0

可能的重复[Android的EditText.setError()产生不可见的错误文本](http://stackoverflow.com/questions/7273932/android-edittext-seterror-yields-invisible-error-text) – Pragnani 2013-03-12 13:05:09

回答

3

试试这个,

int ecolor = Color.RED; // whatever color you want 
String estring = "Input is incorrect"; // your error message 
ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor); 
SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring); 
ssbuilder.setSpan(fgcspan, 0, estring.length(), 0); 
myedittext.setError(ssbuilder); 

来源:Android EditText.setError() yields invisible error text

+0

@泰米尔语&& Pragnani:非常感谢...作品像一个魅力:-) – user2088362 2013-03-12 13:23:37

+0

不适合我:( – 2013-04-03 09:15:12

0

试试这个代码:

   if (editTextName.getText().toString().length() == 0) { 
        int ecolor = getResources().getColor(R.color.blue); // whatever color you want 
        String estring = "Input is incorrect"; 
        ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor); 
        SpannableStringBuilder builder = new SpannableStringBuilder(estring); 
        ssbuilder.setSpan(fgcspan, 0, estring.length(), 0); 
        editTextName.setError(builder); 

       } 
+0

对不起,我发布前做过搜索 - 但可能不够详细。 – user2088362 2013-03-12 13:14:42

0

我只是改变了应用程序的主题在我的项目“清单文件和错误文本正在出现。

变更前:

android:theme="@android:style/Theme.Light.NoTitleBar" 

变更后:

android:theme="@android:style/Theme.Black.NoTitleBar" 
1

使用HTML对象,方便和快速格式化:中

this.txtUserName.setError(Html.fromHtml("<font color='red'>Incorrect input!</font>")); 
+0

为我工作的某些设备。 – 2014-04-07 08:06:59