Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ANDROID在扫描二维码后如何发送新活动的结果?_Java_Android_Android Intent - Fatal编程技术网

Java ANDROID在扫描二维码后如何发送新活动的结果?

Java ANDROID在扫描二维码后如何发送新活动的结果?,java,android,android-intent,Java,Android,Android Intent,大家好,我正在尝试创建一个扫描二维码的应用程序 在主要活动中,我希望扫描二维码,并将结果发送到新活动中 这是我的密码 Main Activity.java: 但是当我尝试在结果活动中测试应用程序时,我看不到结果 怎么了 感谢大家在结果活动中,数据的检索应该在onCreate方法中,而不是在onActivityResult中,您的结果类应该如下所示: public class Result extends AppCompatActivity { TextView result;

大家好,我正在尝试创建一个扫描二维码的应用程序

在主要活动中,我希望扫描二维码,并将结果发送到新活动中

这是我的密码

Main Activity.java:

但是当我尝试在结果活动中测试应用程序时,我看不到结果

怎么了


感谢大家

在结果活动中,数据的检索应该在onCreate方法中,而不是在onActivityResult中,您的结果类应该如下所示:

public class Result extends AppCompatActivity {
    TextView result;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        result = (TextView) findViewById(R.id.result);
        final Barcode barcode = getIntent().getParcelableExtra("barcode");
        result.setText(barcode.displayValue);
    }
}
Intent intent = new Intent(MainActivity.this, Result.class); 
intent.putExtra("barcode", barcodes.valueAt(0)); 
startActivityForResult(intent, 100); 
finish(); 
在MainActivity中,这一行:

intent.putExtra("barcode", barcodes.valueAt(0)); 
应该在

startActivityForResult(intent, 100); 
不是之后,像这样:

public class Result extends AppCompatActivity {
    TextView result;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        result = (TextView) findViewById(R.id.result);
        final Barcode barcode = getIntent().getParcelableExtra("barcode");
        result.setText(barcode.displayValue);
    }
}
Intent intent = new Intent(MainActivity.this, Result.class); 
intent.putExtra("barcode", barcodes.valueAt(0)); 
startActivityForResult(intent, 100); 
finish(); 

如果希望从调用的活动返回起始活动的结果,则只能使用startActivityForResult。在您的情况下,只需通过调用startActivity启动结果活动,并使用getIntent获取结果活动中的数据。

您在MainActivity中编写的代码

Intent intent = new Intent(MainActivity.this, Result.class);
            startActivityForResult(intent, 100);
            intent.putExtra("barcode", barcodes.valueAt(0));
            setResult(RESULT_OK, intent);
            finish();
是错误的,其实应该是这样的,请不要活动的结果

Intent intent = new Intent(MainActivity.this, Result.class);
            intent.putExtra("barcode", barcodes.valueAt(0));
            startActivityForResult(intent, 100);
            finish();
若要在ResultActivity onCreate方法中从MainActivity获取结果,若要显示结果,请使用以下代码

TextView YourResult
YourResult = (TextView) findViewById(R.id.TextView_YourResult);
    final Barcode barcode = getIntent().getParcelableExtra("barcode");
    result.setText(barcode.displayValue);

在要向其传递信息的活动的意图中放置额外的内容代码现在可以工作了,但是当我扫描QRCode时,结果活动会加载更多次,而不是只加载一次。为什么?