2017-12-12 2 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); 

      } 
     } 
    }); 
} 

보기 단추를 제거하십시오.

관련 문제