2017-12-12 5 views
0

SQLデータベースからアンドロイドバーコードスキャナを作成し、クエリ結果を表示したいと考えています。結果は、ビューボタンで取得することができます:スキャナー結果がロードされた後、自動表示を実現する方法をAndroidバーコードスキャナ - SQLデータの自動表示

@Override 
public void onBarcodeEvent(final BarcodeReadEvent event){ 
    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      String barcodeData = event.getBarcodeData(); 
      //String timestamp = event.getTimestamp(); 
      edtproname.setText(""+barcodeData); 
} 

 btnview.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if((edtproname.getText().toString().length()==28)&&(edtproname.getText() !=null)) 

      try { 

       PreparedStatement statement = connect.prepareStatement("EXEC viewProduct '"+edtproname.getText().toString()+"'"); 
       String location = edtproname.getText().subSequence(20,28).toString(); 
       edtlocation.setText(location); 

       rs = statement.executeQuery(); 
       while (rs.next()) { 
        edtproname.setText(rs.getString("ProName")); 
        edtprodesc.setText(rs.getString("ProDesc")); 
       } 
      } catch (SQLException e) { 
       Toast.makeText(AddProducts.this, e.getMessage(), 
         Toast.LENGTH_LONG).show(); 
      } 

      edtqty.requestFocus(); 
      InputMethodManager manager= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
      manager.showSoftInput(edtqty, InputMethodManager.SHOW_FORCED); 
     } 

これは、バーコードの読み取りイベントですか?表示ボタンなしで?どのようにハードウェアトリガの結果を直接使用するのですか?

私は何か助けていただきありがとうございます... ありがとうございます。

画像:トリガーのようなsample app

答えて

0

どれイベントコール機能します。したがって、onBarcodeEvent()でrun()関数を使用して検索をトリガーしてください。 barcodeData文字列を取得した後でクエリコードを入力するだけです。

public void onBarcodeEvent(final BarcodeReadEvent event){ 
    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      String barcodeData = event.getBarcodeData(); 
      edtproname.setText(""+barcodeData); 

      if(barcodeData.length()==28){ 

       try { 

        PreparedStatement statement = connect.prepareStatement("EXEC viewProduct '"+barcodeData+"'"); 
        String location = edtproname.getText().subSequence(20,28).toString(); 
        edtlocation.setText(location); 

        rs = statement.executeQuery(); 
        while (rs.next()) { 
         edtproname.setText(rs.getString("ProName")); 
         edtprodesc.setText(rs.getString("ProDesc")); 
        } 

       } catch (SQLException e) { 
        Toast.makeText(AddProducts.this, e.getMessage(), 
        Toast.LENGTH_LONG).show(); 
       } 

       edtqty.requestFocus(); 
       InputMethodManager manager= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
       manager.showSoftInput(edtqty, InputMethodManager.SHOW_FORCED); 

      } 
     } 
    }); 
} 

ビューボタンを削除します。

関連する問題