【问题标题】:Check if a number inputted in an "EditText" is in an array - Android Studio Java检查在“EditText”中输入的数字是否在数组中 - Android Studio Java
【发布时间】:2019-05-02 04:01:49
【问题描述】:

我想知道用户输入到“EditText”中的数字是否确实存在于数组中,这是我当前的代码:

 final String[] gameArray = {("1"), ("2"), ("3"), ("4"), ("5")};


public void startGame(View v) {

    if (Arrays.asList(gameArray).contains((text))) {

        Outputs1.setText("You typed in: " + text + ", which is the correct number!");

    } else {

        Outputs1.setText("No number 1-5 detected, please type in a number 1-5.");

    }

}

当用户输入一个数字时,它会使用 If 语句检查该数字是否存在于数组中,如果存在则显示一条消息,如果不存在则显示另一条消息。

遗憾的是,这不起作用(因为即使我输入了 1-5,它也只显示另一条消息),其他问题和答案也不起作用。

任何回应都会很棒。

【问题讨论】:

  • 您不需要将() 放入您的数组中。应该没问题。
  • @david 是的,我知道,出于某种原因,我只是喜欢这样,您还有其他方式可以提供帮助吗?
  • 好吧,我没有其他办法。但是,我认为您的数组中的() 是不必要的。
  • 你是如何检测到这些数字的?你用过 textWatcher() 吗?你的 Edittext 大小是多少?
  • @HelloWorld 我使用text = Inputs1.getText(); 在 EditText 中检测到这些数字,我的 EditText 大小大约是任何手机的整个屏幕。我希望这就是你所说的。

标签: java android arrays if-statement android-edittext


【解决方案1】:

我现在修好了,你应该在 If 语句的末尾添加.toString()

我改了:if (Arrays.asList(numberArray).contains((text)))

收件人:if (Arrays.asList(numberArray).contains((Inputs1.getText().toString())))

之后,它应该可以工作了。

【讨论】:

    【解决方案2】:

    我希望这可能会有所帮助

     final String[] numberArray = {("1"), ("2"), ("3"), ("4"), ("5")};
    
        myEditText.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {
                if(s.length() == 0) return;
    
                String text = s.toString().substring(s.length() - 1);
                if (Arrays.asList(numberArray).contains((text))) {
                    Toast.makeText(getActivity(),"You typed in: " + text + ", which is correct!", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getActivity(),"Please type in a number 1-5.", Toast.LENGTH_SHORT).show();
                }
            }
    
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
    
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {}
        });
    

    【讨论】:

    • 对不起,这与它无关,我问的是用户输入的数字是否存在于数组中,而不是输入的长度。我的问题是我想解决这个问题:if (Arrays.asList(numberArray).contains((text))).
    • 每当用户键入数组中存在的数字时,此代码都会显示 toast。为了更好地理解您,请给我填写“文本”变量的代码。
    • 别担心,我修好了,我应该这样做:(Arrays.asList(numberArray).contains((Inputs1.getText().toString())))
    猜你喜欢
    • 2012-12-30
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2010-11-19
    • 2020-07-08
    相关资源
    最近更新 更多