我正在编写一个简单的应用程序,您可以通过app将数据输入到数据库。我必须制定条件,例如:你不能在姓名字段中输入数字。我知道我必须在onClick中这样做,但我真的不知道如何。你能救我吗?
.subscribe(res => {
this.allData = res.map(e => {
e['is_leader'] = true; // as per your rule;
return e;
});
});
答案 0 :(得分:0)
您可以在try / catch中将输入转换为String,或者将输入类型设置为整数(在xml中使用android:inputType="number"
)
答案 1 :(得分:0)
我知道我必须在onClick中执行此操作。
onClick
可能不是理想的地方,因为用户已经输入了数据,因此事后是。
当用户试图输入此类输入时,通常不允许不可接受(原文如此)输入。
还有其他选择,也许最简单的方法是限制可以通过EditText的XML定义输入的字符,例如:限制为字母只有你可以使用: -
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
要允许使用的空格(在大小写之间添加空格): -
android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ";
但是,实际上你应该使用字符串资源,这样你就可以轻松应对多种语言(语言环境)。
因此,您可以创建一个String资源(res / values / strings.xml),例如: -
<string name="alphabet">"abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
然后使用: -
android:digits="@string/alphabet"
以编程方式(或者)您可以使用InputFilter
: -
mAlphaBet = getResources().getString(R.string.alphabet);
// Define the Input Filter
InputFilter inputfilter = new InputFilter() {
public CharSequence filter(CharSequence s,
int start,
int end,
Spanned dest,
int deststart,
int destend) {
for (int i=0; i < end; i++) {
// If not in the alphabet then suppress input
if(!mAlphaBet.contains(String.valueOf(s.charAt(i)))) {
return "";
}
}
// Indicate input is OK
return null;
}
};
// Apply filters (just the 1) to the EditText
editName.setFilters(new InputFilter[]{inputfilter});