0

我有一个关于我的程序的问题。我想接受关于我的编辑文本的一系列值。

我想要发生的是接受 1-50 的值。但我不知道我会怎么做。我设置了int,但它不起作用。谁能帮我?

这是我的简单代码:

REDIRECT.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                String Amount = txtbox1.getText().toString();

                if(Amount.equals(Here is the range of values that i want to accept from 1-50 numbers only))
                {

                final Intent i = new Intent(MainActivity.this, Redirect.class);               
                startActivity(i);
                }
                else 
                {
                    Toast.makeText(MainActivity.this, "Failed", Toast.LENGTH_LONG).show();
                }
            }
        });
4

2 回答 2

3

不要equals用于此:

try{
    int a=Integer.parseInt(txtbox1.getText().toString());
    if(i<=50&&i>=1){
        //it's in the range. Handle it
    }
}catch(NumberFormatExcepion e){
    //handle invalid input
}
于 2013-09-14T17:15:26.403 回答
1

String.equals()只会检查一个String参数是否相等。你无法改变这一点。如果你想匹配多个字符串之一,也许.equals()像这样写一个循环:

private boolean matchesOneOf(String string, String[] strings) {
    for(String thisString : strings) {
        if(string.equals(thisString)) {
            return true;
        }
    }
    return false;
}

或者更好的是使用现有的库类方法,例如 List.contains()

List<String> strings = new ArrayList<String>();
strings.add("1");
strings.add("2");
strings.add("3");
...
strings.add("50");

if(strings.contains(txtbox1.getText().toString())){ 
    // do stuff if value is in the list of strings you specified
}

无论如何,从这个示例的外观来看,您不需要String数字类型(可能intamount. < > <= >=然后,例如使用运算符,范围检查变得非常简单。

于 2013-09-14T17:20:42.883 回答