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
中。
当我读取二维码时,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
中。