检查是否在“输入”中输入了一个数字;编辑文本“;在一个数组中-Android Studio Java
我想知道用户输入到“EditText”中的数字是否确实存在于数组中,以下是我当前的代码:检查是否在“输入”中输入了一个数字;编辑文本“;在一个数组中-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 +
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()))