将条形码结果保存到剪贴板 - Android应用程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将条形码结果保存到剪贴板 - Android应用程序相关的知识,希望对你有一定的参考价值。
我创建了一个条形码扫描器,它将结果数字返回到文本视图中,以向用户显示结果。
我添加了一个按钮,将用户带到条形码查找网站,以便搜索条形码以识别产品。理想情况下,我希望在扫描条形码时自动执行此操作,但我认为这可能会超出我目前的专业水平,我希望能够将生成的条形码数字自动添加到剪贴板中因此,当用户访问网站时,他们所要做的就是将号码粘贴到相关字段中。
条形码结果的代码位于'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
因为我不完全理解错误,所以我不确定从哪里可以离开。
任何建议一如既往地非常感谢。
谢谢
答案
在发现我得到的错误是因为你不能将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框确实会改变我的应用程序的外观以及我希望它如何运行但它是可行的。
以上是关于将条形码结果保存到剪贴板 - Android应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用具有目的为“ android.rfid.INPUT”的意图的sendBroadcast
条码扫描器Phonegap插件;无法将结果保存到全局变量中,或保存到隐藏字段