将条形码结果保存到剪贴板 - Android应用程序

时间:2018-03-06 00:37:39

标签: java android textview clipboard barcode-scanner

我创建了一个条形码扫描器,将结果数字返回到文本视图中,向用户显示结果。

我添加了一个按钮,可以将用户带到条形码查找网站,以便搜索条形码以识别产品。理想情况下,我希望在扫描条形码时自动执行此操作,但我认为这可能会超出我目前的专业水平,我希望能够将生成的条形码数字自动添加到剪贴板中因此,当用户访问网站时,他们所要做的就是将号码粘贴到相关字段中。

条形码结果的代码位于' 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

我不确定我可以从哪里离开,因为我不完全理解错误。

任何建议都会一如既往地受到高度赞赏。

由于

1 个答案:

答案 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框确实会改变我的应用程序的外观以及我希望它如何运行,但它是可行的。