与Zxing的Android QR阅读器

时间:2017-05-02 19:59:11

标签: java android zxing

当我阅读Qr代码时,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();


}
}

当我读完Qr代码时,我想用result开始新的活动。 (问题2)我是怎么做到的?这段代码会起作用吗?

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


}

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

1 个答案:

答案 0 :(得分:0)

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

至于传递Result过度意图,你所拥有的东西是行不通的。 Result不会从Parcelable继承,您只能将其添加到意图中并期望它能够正常运行。更好的方法是从Result获取所有相关信息,并将其作为字符串放在Intent中。