2017-01-06 10 views
4

Androidを探索する私の最初のステップでは、QRスキャンから始めます。Android QRスキャナー:ZXingScannerView.ResultHandlerを終了して私の所在地に戻る方法

すべて正常に動作します。しかし、QRを正常にMainActivityに読み込んだ後、ResultHandlerから戻ってくることはできません。

public class MainActivity extends AppCompatActivity implements   
     ZXingScannerView.ResultHandler 
{ 

    private ZXingScannerView mScannerView 
    .... 

    @Override 
    public void handleResult(Result rawResult) 
    { 
    // my results are ok in rawResult 
    // the scanner does not scan anymore but it is still there 

    // how to go back to my main activity??? 
    } 

    public void ClickButton (View view) 
    { 
     mScannerView = new ZXingScannerView(this); 

     setContentView(mScannerView); 
     mScannerView.setResultHandler(this); 
     mScannerView.startCamera();   
    } 
} 

}

Iは

mScannerview.stopCameraPreview 

mScannerView.stopCamera 

this.finish 

setContentView(R.layout.activity_main); // shows my activity_main 
      // but I can not click anything 

おかげを試みました!

EDIT

は、私は少し良くそれを記述するためにいくつかのコードを追加しました。あなたが活動/フラグメントはあなたがフラグメントである場合、あなたは何添付活動

に対してこのメ​​ソッドを呼び出す必要がありActivity.onBackPressed() を試すことができますスタックに戻りたい場合はアイデアが

https://www.numetriclabz.com/android-qr-code-scanner-using-zxingscanner-library-tutorial/

+0

あなたのクラス名によると、あなたはすでに 'MainActivity'に入っていますか、スキャンプロセスを再開しようとしていますか? – Pztar

答えて

1

からですあなたの活動に戻ってほしくない。アクティビティーのレイアウトを復元する必要があります。

android:visibility="gone"であなたのアクティビティのレイアウトファイルにScannerViewを追加することをお勧めします。クリックすると、このビューが表示され、VISIBILEの可視性が変更されます。

は、その後、あなたがスキャン結果を処理しているとき、あなたは、視認性にyuoir ScannerViewをリセットすることができます= GONE

+0

私はそれをキャッチすることができます。しかし、私はどのように私の主な活動を再び活性化することができますか? – chris01

+1

説明:アクティビティAを持っていると、アクティビティBがあなたのスキャナビューに表示されます。それからあなたはスキャンして、それからあなたはアクティビティAに戻っていきたいですか? – firegloves

+0

私はいくつかのコードを追加しました。 – chris01

2

あなたの質問は明確ではありませんが、私はあなたがスキャンプロセスを再開したいと仮定しています。通常、プレビューモードにするにはSurfaceHolderを再起動する必要があります。幸いなことに、ZXingScannerViewには既にそれを行う方法があります。 mScannerView.resumeCameraPreview(this)に電話してスキャン処理を再開してください。

それ以外の場合は明確にできますか?あなたは戻ってきたいと思っていますが、あなたはすでに入っています。MainActivity

+0

私はスキャンを開始するボタンを持っているのが好きです。多分、他の機能を備えた他のボタンもあります。スキャンボタンをクリックするとスキャンが開始されます。終了したら、ボタンを含むビューに戻るのが好きです。それは、コードをスキャンするアプリケーションの大部分と同様です。それはスキャンだけではなく、何かのためのサイドショーです。 – chris01

+1

@chris 'mScannerView.stopCamera'を使うと効果があります。レイアウトファイルはどのように見えますか? – Pztar

+0

相対レイアウトのボタンだけ。ちょうどリンクのサンプルのように。私はそれがスキャンを停止し、handleResultも私に結果を与えることがわかります。しかし、それはまだスキャン画面(録画を停止した状態)にあります。 – chris01

0

私はアンドロイドの概念と活動を少し見ていました。

私はQR処理を2番目のアクティビティに入れました。これはfinish()でうまくいきました。

どうもありがとうございます!

+1

問題が表示されます。実際には、あなたが共有するリンクに従って 'MainActivity'にすべてのことが起こっています。何が起きているのは、元のレイアウトファイルを 'ScannerView'に置き換えているからです。 – Pztar

0

私もあなたと同じようにこの問題に1時間立ち往生していました。そして、後で実現された。

ドンノーZXingScannerViewを同じアクティビティまたはフラグメントに実装する。あなたがボタンをクリックすると、代わりに新しいアクティビティを開始するとスキャンが完了したら、この活動は、ZXingScannerView

のためだけの仕上がりで、

1

ちょうど再起動するアクティビティやフラグメントに戻ってデータを渡すあなたのMainActivitythis.finish()

以下のコードが意図を通して、あなたの主な活動を開始します...

は私のために

startActivity(new Intent(this,MainActivity.class)); 
this.finish(); 
をうまく働きました0
関連する問題