在Android中禁用edittext中的空格

时间:2016-01-14 13:20:42

标签: android android-edittext

我试图阻止空格/进入edittext。 我找到了防止空间的代码,但它不适合我。请告诉我问题是什么以及如何解决它



package com.example.apc.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public void afterTextChanged(Editable s) {
        TextView inputView = (TextView) findViewById(R.id.editText);
        String result = s.toString().replaceAll(" ", "");
        if (!s.toString().equals(result)) {
            inputView.setText(result);
            inputView.setSelection(result.length());
        }
    }
}




错误:(21,21)错误:找不到符号方法setSelection(int) 错误:任务':app:compileDebugJavaWithJavac'执行失败。

  

编译失败;请参阅编译器错误输出以获取详细信   错误:(15,5)错误:方法不会覆盖或实现超类型的方法   错误:任务':app:compileDebugJavaWithJavac'执行失败。   编译失败;有关详细信息,请参阅编译器错误输出。

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

package com.example.apc.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 TextView inputView = (TextView) findViewById(R.id.editText);
inputView.addTextChangedListener(new TextWatcher() {
		
		@Override
		public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
				int arg3) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void afterTextChanged(Editable arg0) {
			// TODO Auto-generated method stub
			  String result = s.toString().replaceAll(" ", "");
        if (!s.toString().equals(result)) {
            inputView.setText(result);
            inputView.setSelection(result.length());
        }
		}
	});



    }
    
}

答案 2 :(得分:0)

您所涉及的问题是TextView而不是EditText

回到问题,我相信你不想要,该用户是否按空格并试图保存它。

如果你试图阻止用户输入空格,你将使代码变得复杂,这里不需要。

您可以做的是检查用户输入的text是否是有效文本,如果它只是您在文本中看到的空格,则可以修剪它并通知用户输入有效文本在EditText

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;
}

答案 3 :(得分:0)

在xml中用作 -

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

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