私はQRコードをスキャンするためにZXing compile 'me.dm7.barcodescanner:zxing:1.8.4'
ライブラリを使用しています。スキャン結果をカスタムダイアログレイアウトで表示するには問題があります。QRコードを表示する方法カスタムダイアログで結果をスキャンしますか?
string
はtextView
にcustom dialog
レイアウトで表示される方法はありますか?
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();`
私はこのメソッドを使用しません。しかし、それは素晴らしいです
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();
}
私はこのメソッドを使いたいです。しかし、それは動作しません。
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();
}
}
あなたはこれを試してみましたmethod.Have handleResult()内のテキスト値を得ることができますか? –
はい。私は 'handleResult()'メソッドを使用しており、結果を 'alert dialog'に示すことができますが、' custom dialog'に結果を表示することはできません。 – sohanoor
ここにコードを投稿 –