Java ZXing扫描结果if语句
这是我关于堆栈*溢出*的第一个问题 我正在使用Eclipse和Android开发工具。我从中复制了代码,以便使用条形码扫描仪扫描二维码(我相信你们中的许多人以前都见过此代码): 我能够启动条形码扫描仪,它会在Java ZXing扫描结果if语句,java,android,if-statement,zxing,Java,Android,If Statement,Zxing,这是我关于堆栈*溢出*的第一个问题 我正在使用Eclipse和Android开发工具。我从中复制了代码,以便使用条形码扫描仪扫描二维码(我相信你们中的许多人以前都见过此代码): 我能够启动条形码扫描仪,它会在onActivityResult()方法中返回结果 public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0)
onActivityResult()方法中返回结果
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
contents = intent.getStringExtra("SCAN_RESULT");
format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
if(contents == "1")
{
contentsLat = contents;
}
else if(contents == "0")
{
contentsRow = contents;
}
else
{
Toast.makeText(getApplicationContext(), "Code Not Recognized\n"+contents+"\n1", Toast.LENGTH_LONG).show();
}
}
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
Toast.makeText(getApplicationContext(), "Unsuccessful Scan", Toast.LENGTH_SHORT).show();
}
}
}
但是,else
语句总是被执行……除非我明确地将内容
等同于1
。下面是一个链接,指向正在执行的else
主体的屏幕截图(我还没有嵌入图像的权限),并且吐司清楚地表明contents=1
。我做错了什么?我错过什么了吗
谢谢大家。欢迎光临
我已经看到这是新Java程序员中非常常见的问题:),对于字符串比较,我们必须使用equals()
方法
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
contents = intent.getStringExtra("SCAN_RESULT");
format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
if(contents == "1")
{
contentsLat = contents;
}
else if(contents == "0")
{
contentsRow = contents;
}
else
{
Toast.makeText(getApplicationContext(), "Code Not Recognized\n"+contents+"\n1", Toast.LENGTH_LONG).show();
}
}
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
Toast.makeText(getApplicationContext(), "Unsuccessful Scan", Toast.LENGTH_SHORT).show();
}
}
}
将代码更改为:
// Handle successful scan
if(contents.equals("1")){
contentsLat = contents;
}
else if(contents.equals("0")){
contentsRow = contents;
}
更多信息:
比较字符串时,请始终使用.equals,因此请尝试使用if(contents.equals(“1”))谢谢Sean。这就是解决办法。我很感激。