我正在开发一个应用程序,用户可以选择在Latitude和Longitude的两个EditText视图中输入一组坐标。然后输入的坐标/位置将显示在地图上,这很有效。但是,如果用户输入无效值,应用程序崩溃,我需要阻止它。
纬度/经度值必须是例如35.27,并且使应用程序崩溃的事情是当有多个点“。”时。例如33.23.43。如何检查输入的值是否只有一个点?
我在这个领域并没有很多经验,而且我还是Android的新手,所以任何帮助都会非常感激。
答案 0 :(得分:1)
我打算建议你检查你得到的字符串的长度,但因为1.5和153.163都是有效的,不起作用。我建议你使用`try / catch语句。例如
try{
//do what ever you do with the numbers here
catch(Exception e){
//the user has inputted an invalid number deal with it here
}
答案 1 :(得分:1)
结帐
Android EditText : setFilters Example : Numeric Text field Patterns and Length Restriction.
这可能就是你想要的。
答案 2 :(得分:0)
bool badInput = countChar(s, '.') > 1;
其中countChar是
int countChar(string s, char c)
{
int counter = 0;
for( int i=0; i<s.length(); i++ ) {
if( s.charAt(i) == c ) {
counter++;
}
}
return counter;
}
答案 3 :(得分:0)
只需使用regexp
检查输入的有效性。
Pattern p = Pattern.compile("^(-)?\d*(\.\d*)?$");
Matcher m = p.matcher(inputString);
if (m.find()) {
////Found
}
else {
//Not found
}
现在在字段上实施focus listener
以运行此有效性测试。
OR:您也可以从xml执行此操作。
在XML中添加属性editText
:
android:inputType="number|numberSigned|numberDecimal"
签名浮点数。
感谢。