检查是否在“输入”中输入了一个数字;编辑文本“;在一个数组中-Android Studio Java

检查是否在“输入”中输入了一个数字;编辑文本“;在一个数组中-Android Studio Java,java,android,arrays,if-statement,android-edittext,Java,Android,Arrays,If Statement,Android Edittext,我想知道用户输入到“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 +

我想知道用户输入到“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,它也只显示了另一条消息),其他问题和答案也不起作用

任何回复都会很好。

我希望这会有所帮助

 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语句的末尾添加
.toString()

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

To:
if(Arrays.asList(numberraray).contains((Inputs1.getText().toString()))


之后,它应该会工作。

您不需要将
()
放入数组中。应该没问题。@david是的,我知道,我只是出于某种原因喜欢这样,你能帮我什么忙吗?我没有别的办法。但是,我认为数组中的
()
是不必要的。您如何检测这些数字?您是否使用了textWatcher()?您的Edittext大小是多少?@HelloWorld我使用
text=Inputs1.getText()检测Edittext中的这些数字
和我的编辑文本大小是任何手机的整个屏幕大小。我希望这就是你所说的。对不起,这与此无关,我要问的是用户键入的数字是否存在于数组中,而不是输入的长度。我的问题是我想解决这个问题:
if(Arrays.asList(numberraray).contains((text))
。每当用户键入数组中存在的数字时,这段代码就会显示toast。为了更好地理解您,请给我填充“text”变量的代码。别担心,我已经修复了它,我应该这样做:
(Arrays.asList(numberraray).contains((Inputs1.getText().toString()))