如何使用QR code结果从zxing为一个字符串 [英] How to use qr code result from zxing as a string

查看:255
本文介绍了如何使用QR code结果从zxing为一个字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我就用zxing意图工作,但我如何使用输出并保存为一个字符串真的很困惑。

下面是这样做的目的

 公共无效扫描(查看视图){    尝试{        意向意图=新意图(com.google.zxing.client.android.SCAN);
        intent.putExtra(SCAN_MODE,QR_ code_MODE); //PRODUCT_MODE为酒吧codeS        startActivityForResult(意向,0);    }赶上(例外五){        乌里marketUri = Uri.parse(?市场://细节ID = com.google.zxing.client.android);
        意图marketIntent =新意图(Intent.ACTION_VIEW,marketUri);
        startActivity(marketIntent);    }
}@覆盖
保护无效的onActivityResult(INT申请code,INT结果code,意图数据){
    super.onActivityResult(要求code,结果code,数据);
    如果(要求code == 0){        如果(结果code == RESULT_OK){
            字符串内容= data.getStringExtra(SCAN_RESULT);
        }
        如果(结果code == RESULT_CANCELED){
            //处理取消
        }
    }
}

和尝试使用它作为一个字符串:

 <的TextView
    机器人:ID =@ + ID /结果
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:文字=@字符串/title_activity_on_activity_result
    机器人:layout_marginTop =45dp
    机器人:layout_alignParentTop =真
    机器人:layout_alignRight =@ + ID /按钮
    机器人:layout_alignEnd =@ + ID /键/>

和最后的字符串:

 <字符串名称=APP_NAME> TEST123< /串>
<字符串名称=参考hello world>世界,你好<!/串>
<字符串名称=action_settings>设置< /串>
<字符串名称=button_scan>扫描和LT; /串>
<字符串名称=title_activity_activity_result> ActivityResult< /串>
<字符串名称=title_activity_on_activity_result>的onActivityResult< /串>

真的AP preciate一些帮助!

 例外:主
了java.lang.RuntimeException:无法恢复活动
{com.JunkerDev.testfaggot / com.JunkerDev.testfaggot.MainActivity}:
了java.lang.RuntimeException:不提供结果ResultInfo {谁= NULL,请求= 0,
结果= -1,数据= {意图行事= com.google.zxing.client.android.SCAN FLG = 0x80000(有
演员)}}到活动
{com.JunkerDev.testfaggot / com.JunkerDev.testfaggot.MainActivity}:
显示java.lang.NullPointerException


解决方案

在QR code的文字是在局部变量内容。这必须设置为您的的TextView 的id为结果,在code不在XML文本。

要做到这一点,你应该在你的活动声明的成员:

 的TextView mResult;

的onCreate(),在的setContentView(),其绑定到的TextView

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

终于在的onActivityResult()

 如果(结果code == RESULT_OK){
    字符串内容= data.getStringExtra(SCAN_RESULT);
    mResult.setText(内容);
}

so i got zxing working using an intent, but i am really confused as how to use the output and save it as a string.

Here is The 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
        }
    }
}

And trying to use it as a string:

<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" />

and finally the strings:

<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>

Would really appreciate some help!

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

解决方案

The text in the QR code is in the local variable contents. This has to be set as the text of your TextView with id result, in code not in xml.

To do so, you should declare a member in your Activity:

TextView mResult;

in onCreate(), after setContentView(), bind it to the TextView

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

and finally in onActivityResult():

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

这篇关于如何使用QR code结果从zxing为一个字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆