Android QR reader 与 Zxing

Android QR reader with Zxing

当我读取二维码时,textView没有变化。(问题1)问题是什么?

public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler{


private Button buton;
private TextView textView;
private ZXingScannerView myview;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    buton = (Button)findViewById(R.id.button);
    textView = (TextView)findViewById(R.id.textView);
    buton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            myview = new ZXingScannerView(MainActivity.this);

            myview.setResultHandler(MainActivity.this);
            setContentView(myview);
            myview.startCamera();


        }
    });

}

@Override
protected void onPause() {
    super.onPause();
    myview.stopCamera();
}

@Override
public void handleResult(Result result) {

    setContentView(R.layout.activity_main);
    textView.setText(result.getText().toString());
    myview.stopCamera();


}
}

当我读完二维码后,我想用 result 开始新的活动。 (问题 2)我该怎么做?此代码有效吗?

@Override
public void handleResult(Result result) {
    myview.stopCamera();
    Intent intent = new Intent(getApplicationContext(),SecondActivty.class);
    intent.putExtra("Result",result);
    startActivity(intent);


}

如果没有,我该如何解决?

handleResult 中删除 setContentView(R.layout.activity_main);。您正在用新视图替换您引用的视图。

至于传达 Result 过分的意图,照原样,你所拥有的是行不通的。 Result 不继承自 Parcelable,您不能只是将其固定在意图中并期望它起作用。更好的做法是从 Result 中获取所有相关信息并将其作为字符串放入 Intent 中。