我创建了一个条形码扫描器,将结果数字返回到文本视图中,向用户显示结果。
我添加了一个按钮,可以将用户带到条形码查找网站,以便搜索条形码以识别产品。理想情况下,我希望在扫描条形码时自动执行此操作,但我认为这可能会超出我目前的专业水平,我希望能够将生成的条形码数字自动添加到剪贴板中因此,当用户访问网站时,他们所要做的就是将号码粘贴到相关字段中。
条形码结果的代码位于' barcodeResult'是textview:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0) {
if (resultCode == CommonStatusCodes.SUCCESS) {
if (data != null) {
Barcode barcode = data.getParcelableExtra("barcode");
barcodeResult.setText("Barcode value : "+barcode.displayValue);
} else {
barcodeResult.setText("No barcode found");
}
} else {
}
super.onActivityResult(requestCode, resultCode, data);
}
}
public void browser1 (View view) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.barcodelookup.com/api"));
startActivity(browserIntent);
}
编辑:我已经尝试将以下内容添加到if语句中,结果为:null:
final ClipboardManager clipboardManager = (ClipboardManager) getSystemService(this.CLIPBOARD_SERVICE);
clipboardManager.setText((CharSequence) barcodeResult);
但是这给了我错误:
android.widget.TextView cannot be cast to java.lang.CharSequence
我不确定我可以从哪里离开,因为我不完全理解错误。
任何建议都会一如既往地受到高度赞赏。
由于
答案 0 :(得分:0)
在发现我得到的错误是因为你不能将CharSequence与TextView一起使用后,我找到了一些我可以使用的ClipboardManager代码并将TextView更改为EditText。结果代码如下(完整的IF语句):
if (data != null) {
Barcode barcode = data.getParcelableExtra("barcode");
barcodeResult.setText(barcode.displayValue);
final ClipboardManager clipboardManager = (ClipboardManager) getSystemService(this.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("text", barcodeResult.getText().toString() );
clipboardManager.setPrimaryClip(clip);
Toast.makeText(this, "Result added to clipboard", Toast.LENGTH_SHORT).show();
更改为和EditText框确实会改变我的应用程序的外观以及我希望它如何运行,但它是可行的。