I am using ZXing compile 'me.dm7.barcodescanner:zxing:1.8.4'
library to scan QR code. I am facing problem to show the Scan result in a Custom Dialog Layout.
Is there any way to show the scan result as string
in textView
in custom dialog
layout ?
public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
private ZXingScannerView mScannerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mScannerView = new ZXingScannerView(this);
setContentView(mScannerView);
mScannerView.setResultHandler(this);
mScannerView.startCamera();
}
@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera();
}
@Override
public void onResume() {
super.onResume();
mScannerView.resumeCameraPreview(MainActivity.this);
}
@Override
public void handleResult(Result rawResult) {
Log.e("handler", rawResult.getText()); // Prints scan results
Log.e("handler", rawResult.getBarcodeFormat().toString()); // Prints the scan format (qrcode)
final String shareResult = rawResult.getText();`
I don't want to use this method. But it works great
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Scan Result");
builder.setMessage(rawResult.getText());
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
//user pressed OK
mScannerView.resumeCameraPreview(MainActivity.this);
}
});
builder.setNeutralButton("Share", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, shareResult);
sendIntent.setType("text/plain");
startActivity(sendIntent);
}
});
AlertDialog alert1 = builder.create();
alert1.show();
}
I want to use this method. But it doesn't work.
private void dialogHandler(String result) {
final String shareResult = result;
final Dialog dialog = new Dialog(MainActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.setContentView(R.layout.customdialog);
final ImageView click_ok = (ImageView) dialog.findViewById(R.id.click_ok);
final ImageView click_share = (ImageView) dialog.findViewById(R.id.click_share);
final TextView qrResult = (TextView) findViewById(R.id.qrResult);
qrResult.setText(shareResult);
click_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mScannerView.resumeCameraPreview(MainActivity.this);
dialog.dismiss();
}
});
click_share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, shareResult);
sendIntent.setType("text/plain");
getBaseContext().startActivity(sendIntent);
}
});
dialog.show();
}
}
final TextView qrResult = (TextView) dialog.findViewById(R.id.qrResult);
qrResult.setText(shareResult);