如何在其他活动中发送从QRcode扫描器读取的字符串

第1408章

我在Android中使用QR码扫描仪,我想拆分值,但是我无法将结果从ScanActivity发送到Main_Activity,导致程序崩溃,并且我在下面遇到错误

(导致原因:java.lang.NullPointerException:尝试在com.exampledemo.parsaniahardik.scanbarcodeqrdemonuts上的空对象引用上调用虚拟方法'java.lang.String android.os.BaseBundle.getString(java.lang.String)'。 MainActivity.onCreate(MainActivity.java:26))

有人可以帮我吗?


*** MainActivity Code 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        Button btn = (Button) findViewById(R.id.btn);

        Bundle my_split = getIntent().getExtras();
        String st = my_split.getString("tvresult1");     


        String totale = st;
        String [] parte = totale.split("-");

        part1 = parte[0];
        part2 = parte[1];
        part3 = parte[2];
        part4 = parte[3];
        part5 = parte[4];
        part6 = parte[5];

        MainActivity.Name.setText(""+part1);
        MainActivity.TNumber.setText(""+part2);
        MainActivity.date.setText(""+part3);
        MainActivity.numberOf.setText(""+part4);
        MainActivity.sum.setText(""+part5);
        MainActivity.amount.setText(""+part6);


 btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, ScanActivity.class);
                startActivity(intent);
            }
        });






**ScanActivity

       package com.exampledemo.parsaniahardik.scanbarcodeqrdemonuts;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import me.dm7.barcodescanner.zbar.ZBarScannerView;

public class ScanActivity extends AppCompatActivity implements ZBarScannerView.ResultHandler {
    private ZBarScannerView mScannerView;

    String part1,part2,part3,part4,part5,part6;
    //camera permission is needed.

    @Override
    public void onCreate(Bundle state) {
        super.onCreate(state);
        mScannerView = new ZBarScannerView(this);    // Programmatically initialize the scanner view
        setContentView(mScannerView);                // Set the scanner view as the content view
    }

    @Override
    public void onResume() {
        super.onResume();
        mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
        mScannerView.startCamera();          // Start camera on resume
    }

    @Override
    public void onPause() {
        super.onPause();
        mScannerView.stopCamera();           // Stop camera on pause
    }

    @Override
    public void handleResult(me.dm7.barcodescanner.zbar.Result result) {
        // Do something with the result here
        Log.v("kkkk", result.getContents()); // Prints scan results
        Log.v("uuuu", result.getBarcodeFormat().getName()); // Prints the scan format (qrcode, pdf417 etc.)



      // MainActivity.tvresult.setText(result.getContents());
            // onBackPressed();

        Intent mainActivity = new Intent(this,MainActivity.class);
        mainActivity.putExtra("tvresult1",result.getContents().toString());
        startActivity(mainActivity);

    }




}

塔瑟

您可以通过将结果从扫描活动转换为主要活动onActivityResult(),您可以像这样实现它:

 btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, ScanActivity.class);
            startActivityForResult(intent, 500) //500 is our request code, we will use this to check if incoming data is what we want. You can put any integer value in it
        }
    });

扫描活动

    @Override
public void handleResult(me.dm7.barcodescanner.zbar.Result result) {
    // Do something with the result here
    Log.v("kkkk", result.getContents()); // Prints scan results
    Log.v("uuuu", result.getBarcodeFormat().getName()); // Prints the scan format (qrcode, pdf417 etc.)

    Intent mainActivity = new Intent(this,MainActivity.class);
    mainActivity.putExtra("tvresult1",result.getContents().toString());
    setResult(Activity.RESULT_OK, mainActivity);
    finish(); //exiting your ScanActivity
}

现在,我们要做的就是覆盖onActivityResult()您的MainActivity

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

 if (requestCode == 500) { //Remember the result code we set in startActivityForResult()? This is how we identify our incoming data
     if(resultCode == Activity.RESULT_OK){  //Data is received
        String result= data.getStringExtra("tvresult1"); 
        //Your result is received
     } 
   }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在其他活动中读取公共静态最终字符串

如何在其他活动中发送价值?

如何在Java中将扫描器字符串转换为Stream?

如何在其他字符串中回显字符串?

Java扫描器字符串输入

如何在其他字符串之间使用/删除仅数字集?

如何在其他字符串中找到 Json 数据?

如何在flutter中加密字符串并在其他设备中解密此加密字符串?

如何在json字符串中发送隐藏参数?

如何在其他Web服务中发送JSON数据?

Rails的活动资源:如何在请求正文中而不是查询字符串中发送post参数?

如何确定子字符串是否在其他字符串中

如何发送键值字符串作为其他postData?

如何在其他服务器上跟踪扫描?

如何在其他zip文件(如果有)中的zip文件中搜索字符串

字符串扫描器在Java中不起作用

Java扫描器不接受字符串前的整数输入

具有不同输入类型的连续嵌套扫描器,包括带空格的字符串

如何在其他python 3中找到与最后n个字符串匹配的前n个字符串之间的重叠?

如何在其他两个字符串之间获取多个字符串

在 Python 中打印时如何在其他两个字符串之间插入一个字符串

如何在其他行之前放置字符串“ title”,直到新的字符串“ title”。用awk,sed,perl等解决的递归问题

使用具有字符串模式的扫描器对字符串进行令牌化

如何在C#字符串中替换其他字符而忽略其他字符?

如何在其他活动中设置sharedPreferences的值?

如何在其他活动中显示json响应?

如何查看表中的字符串是否包含在其他表中指定的字符串

如何在Powershell中的其他字符串中插入多行字符串?

如何在notepad ++中保留特殊字符串并删除其他字符串?