我试图阻止空格/进入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'执行失败。 编译失败;有关详细信息,请参阅编译器错误输出。
答案 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*"
/>
你可以在其中添加任何数字