在Android中禁用edittext中的空格

在Android中禁用edittext中的空格,android,android-edittext,Android,Android Edittext,我试图阻止空格/回车键进入编辑文本。 我找到了防止空格的代码,但它对我不起作用。请告诉我问题出在哪里,我如何解决 package com.example.apc.myapplication; 导入android.support.v7.app.AppActivity; 导入android.os.Bundle; 导入android.text.Editable; 导入android.widget.TextView; 公共类MainActivity扩展了AppCompatActivity{ @凌驾 创

我试图阻止空格/回车键进入编辑文本。 我找到了防止空格的代码,但它对我不起作用。请告诉我问题出在哪里,我如何解决

package com.example.apc.myapplication;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.text.Editable;
导入android.widget.TextView;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@凌驾
公共无效后文本已更改(可编辑){
TextView inputView=(TextView)findViewById(R.id.editText);
字符串结果=s.toString().replaceAll(“,”);
如果(!s.toString().equals(结果)){
inputView.setText(结果);
inputView.setSelection(result.length());
}
}

}
要限制用户输入,您可以在创建edittext视图的xml文件中使用android:digits=“0123456789.”。您可以在“数字”属性中键入任何类型的允许字符。谢谢

package com.example.apc.myapplication;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.text.Editable;
导入android.widget.TextView;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView inputView=(TextView)findViewById(R.id.editText);
inputView.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列arg0、int arg1、int arg2、int arg3){
//TODO自动生成的方法存根
}
@凌驾
更改前的公共void(字符序列arg0、int arg1、int arg2、,
int arg3){
//TODO自动生成的方法存根
}
@凌驾
public void PostTextChanged(可编辑arg0){
//TODO自动生成的方法存根
字符串结果=s.toString().replaceAll(“,”);
如果(!s.toString().equals(结果)){
inputView.setText(结果);
inputView.setSelection(result.length());
}
}
});
}

}
您所讨论的是
文本视图
而不是
编辑文本

回到问题上来,我相信你不会想要的是,用户按下空格并试图保存它

如果您试图阻止用户键入空格,则会使代码变得复杂,而这在此处不是必需的

您可以做的是检查用户输入的
文本是否有效,如果文本中只有空格,则可以对其进行修剪,并通知用户在
编辑文本中输入有效文本

EditText editText= (EditText) findViewById(R.id.one_editText);
String text_string = editText.getText().toString();

if (!isValidText(text_string)) {
     Toast.makeToast(context, "Kindly Provide a valid Customer Name", Toast.LENGTH_SHORT).show();
            return;
 }
您需要检查的只是文本是否有效,在内部您可以有自己的实现

public boolean isValidText(String text) {
    if (text == null) {
        return false;
    }
    if (text.trim().contentEquals("")) {
        return false;
    }

    if (text.trim().length() < 1) {
        return false;
    }

    if (text.trim().toLowerCase().contentEquals("null")) {
        return false;
    }
    return true;
}
公共布尔值isValidText(字符串文本){
if(text==null){
返回false;
}
if(text.trim().contentEquals(“”){
返回false;
}
if(text.trim().length()<1){
返回false;
}
if(text.trim().toLowerCase().contentEquals(“null”)){
返回false;
}
返回true;
}
在xml中用作-

 <EditText
    android:id="@+id/nombre"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    android:hint="hint text*"
     />


您可以在其中添加任何数字

谢谢,但此代码首先不起作用,我想您的意思是写一行,如EditText EditText=(EditText)findViewById(R.id.EditText);我
这些行有一些问题:1)if(!isValidText(text_string)){2)返回;错误:(20,5)错误:非法的类型开始错误:(20,9)错误:非法的类型开始错误:(20,10)错误:')'预期错误:(20,33)错误:预期错误:(20,34)错误:类型和nore..sry的开头非法,但我无法将孔代码粘贴到此处,因为它对我来说太长了comment@bill,我已经测试了代码,看看这个