java - Android白痴校对用户输入

标签 java android

我一生都无法弄清楚我做错了什么。我试图将用户输入限制为整数。所以当我使用以下代码时

int userNumber = Integer.parseInt(userGuess.getText().toString());

我的应用程序没有崩溃。

我想出了如何在java中做到这一点,http://www.browxy.com/SavedCode/48384 。我遇到的唯一问题是将这个概念移植到我的应用程序中。当我使用它时,Android Studio 无法识别 hasNextInt() 。

首先我使用findViewId方法来获取 View :

EditText userGuess = (EditText) findViewById(R.id.userGuess);

然后我尝试检查 userGuess.getText().toString(); 是否通过循环的方式是一个整数。正如我所说,android Studio 无法识别 hasNextInt();

在查看 stackOverflow 时,一位用户表示要避免使用期望来解决此问题。请帮忙!

最佳答案

您可以在EditText上使用输入类型数字。

<EditText
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:inputType="number" />

我不确定用户是否仍然能够将非数字字符复制粘贴到此字段中。

http://developer.android.com/training/keyboard-input/style.html http://developer.android.com/guide/topics/ui/controls/text.html#Keyboard

<小时/>

另一种检查方法是在用户输入内容之后(例如,如果他们仍然可以在字段中粘贴非数字,则仍然需要):

private boolean isDigit(String text) {
    try {
        Integer.parseInt(text);
        return true;
    } catch (NumberFormatException e) {
        // log warning, track analytics if you want
    }
    return false;
}

我避免编写返回整数的方法,因为它会使用控制流异常。在这种情况下,我不确定该方法将返回什么数字。

关于java - Android白痴校对用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33453564/

相关文章:

Java编程构造函数理解

java - java 获取DNS记录信息

java - 我们如何以编程方式添加“公式”选项卡以及使用 java rest api 客户端在 docusign 中添加规则?

java - 如何通过单击上一个抽屉项目的特定 fragment 来打开下一个抽屉

android - 将 parent 用于可绘制资源

c# - Xamarin Android MvvmCross 绑定(bind) facebook 登录按钮

java - Eclipse 显示存在的 checkstyle SuppresWarnings 警告

android - android中如何过滤铃声、闹钟及相关媒体文件

android - React Native - 在 android 上构建成功但应用程序崩溃

android - 创建Android扩展文件