android编辑文本值
我有一个最奇怪的问题 我所要做的就是从EditText中获取值并进行一些验证 edittext中的值必须介于1和10之间。然而,即使我输入了1到10之间的任何数字,它仍然会验证false。我甚至测试了edittext输入,以确保它是正确的,而且是正确的,但if仍然失败。有什么想法吗 代码如下:android编辑文本值,android,android-widget,Android,Android Widget,我有一个最奇怪的问题 我所要做的就是从EditText中获取值并进行一些验证 edittext中的值必须介于1和10之间。然而,即使我输入了1到10之间的任何数字,它仍然会验证false。我甚至测试了edittext输入,以确保它是正确的,而且是正确的,但if仍然失败。有什么想法吗 代码如下: ed = (EditText) dialog2.findViewById(R.id.ed_quantity);
ed = (EditText) dialog2.findViewById(R.id.ed_quantity);
Button bq = (Button) dialog2.findViewById(R.id.alert_a);
dialog2.setCancelable(false);
dialog2.show();
bq.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v)
{
String test = ed.getText().toString();
Toast toast23452234 = Toast.makeText(mContext, "Quantity: "+test, Toast.LENGTH_LONG);
toast23452234.show();
if(test=="1"||test=="2"||test=="3"||test=="4"||test=="5"||test=="6"||test=="7"||test=="8"||test=="9"||test=="10")
{
quantity = Integer.parseInt(ed.getText().toString());
dialog2.dismiss();
ed.setText("1");
}
else
{
Toast toast2345223 = Toast.makeText(mContext, "Quantity must be between 1 and 10" , Toast.LENGTH_LONG);
toast2345223.show();
}
}
});
使用
equals
方法比较字符串
if(test.equals("1")||test.equals("2")||test.equals("3")||test.equals("4")||test.equals("5")||test.equals("6")||test.equals("7")||test.equals("8")||test.equals("9")||test.equals("10"))
或者使用int进行比较
int test = Integer.valueOf(ed.getText().toString());
String
不是本机类型,因此无法执行test==“1”
。这将比较对象引用,显然这两个对象具有不同的引用
对字符串对象调用equals(Object对象)
方法。像
test.isEquals("1")
最好将输入字符串解析为整数
int testInteger = Integer.parseInt(test);
并比较为
if(testInteger==1 || testInteger ==2)
这将节省对字符串对象的许多方法调用 在字符串中使用.equals(“”)
if(test.equals("1")||test.equals("2")||test.equals("3")||test.equals("4")||test.equals("5")||test.equals("6")||test.equals("7")||test.equals("8")||test.equals("9")||test.equals("10"))
在字符串操作中使用.equals,而不是==
if(test.equals("1")||... and so on)
或者将字符串转换为“int”使用test.equals(“1”)
||
你也可以这样做
int t = Integer.parseInt(test);
if(t == 1 || t == 2 || ...)
试试这个
test.trim().equalsIgnoreCase("1")
在if条件下请参见在if中尝试此
test.trim().equalsIgnoreCase(“1”)
-condition@newBee,这对我有用,谢谢