gpt4 book ai didi

java - 如何将 ZXing 的二维码结果用作字符串?

转载 作者:行者123 更新时间:2023-12-01 13:31:34 25 4
gpt4 key购买 nike

我得到了ZXing使用 Intent 工作,但我真的很困惑如何使用输出并将其保存为字符串。

Intent 如下:

public void scan(View view) {

try {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); // "PRODUCT_MODE for bar codes

startActivityForResult(intent, 0);
}
catch (Exception e) {

Uri marketUri = Uri.parse("market://details?id=com.google.zxing.client.android");
Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
startActivity(marketIntent);
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {

if (resultCode == RESULT_OK) {
String contents = data.getStringExtra("SCAN_RESULT");
}
if(resultCode == RESULT_CANCELED){
//handle cancel
}
}
}

并尝试将其用作字符串:

<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/"title_activity_on_activity_result"
android:layout_marginTop="45dp"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/button"
android:layout_alignEnd="@+id/button" />

最后是字符串:

<string name="app_name">TEST123</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="button_scan">Scan</string>
<string name="title_activity_activity_result">ActivityResult</string>
<string name="title_activity_on_activity_result">onActivityResult</string>

异常(exception):

EXCEPTION: main
java.lang.RuntimeException: Unable to resume activity
{com.JunkerDev.testfaggot/com.JunkerDev.testfaggot.MainActivity}:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0,
result=-1, data=Intent { act=com.google.zxing.client.android.SCAN flg=0x80000 (has
extras) }} to activity
{com.JunkerDev.testfaggot/com.JunkerDev.testfaggot.MainActivity}:
java.lang.NullPointerException

如何解决这个问题?

最佳答案

QR 码中的文本位于局部变量 contents 中。必须将其设置为 id resultTextView 文本;在代码中,而不是在 XML 中。

为此,您应该在 Activity 中声明一个成员:

TextView mResult;

onCreate()中,在setContentView()之后,将其绑定(bind)到TextView:

mResult = (TextView) findViewById(R.id.result);

最后在onActivityResult()中:

if (resultCode == RESULT_OK) {
String contents = data.getStringExtra("SCAN_RESULT");
mResult.setText(contents);
}

关于java - 如何将 ZXing 的二维码结果用作字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21533206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com