android从文本框值读取条形码值

时间:2013-10-15 09:11:53

标签: android textbox barcode

我想制作一个小应用程序,让用户在文本框中输入条形码。然后他可以扫描条形码,如果文本框中的条形码编号与扫描的条形码匹配,则显示一条小信息,说“匹配”。

由于某种原因,我输入的条形码找不到匹配,即使我已经提供了我正在扫描的确切条形码编号。我做错了什么?

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    //retrieve scan result 
    IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);

    if (scanningResult != null) {
        String scanContent = scanningResult.getContents();
      //String scanFormat = scanningResult.getFormatName();
        contentTxt.setText(scanContent);
        doSomething();
    }
    else{ 
        Toast toast = Toast.makeText(getApplicationContext(), 
            "No scan data received!", Toast.LENGTH_SHORT); 
        toast.show(); 
    }
}
//Output a message if the barcode matches the code stated in 'scanContent'
public void doSomething(){
    if (codeNumber.getText() == contentTxt.getText()) {
        Toast toast = Toast.makeText(getApplicationContext(), "We have a match!", Toast.LENGTH_LONG);
        toast.show();
    }
    else {
        Toast toast = Toast.makeText(getApplicationContext(), "DOES NOT MATCH!", Toast.LENGTH_LONG);
        toast.show();
    }
}

1 个答案:

答案 0 :(得分:2)

我的猜测是你来自C世界。欢迎朋友。

在Java中,人们不会简单地比较两个String实例,因为String是一个对象,而不是一个基本类型。

通过使用==操作数,您可以比较两个字符串对象'在记忆中的地址。由于在您的情况下它们不是同一个对象,因此结果为FALSE

要比较值,请使用String.equals()

if (contentTxt.getText().toString().equals(codeNumber.getText().toString())) {