2012-01-04 27 views
1

タブレットにBluetoothバーコードスキャナが接続されています。私がバーコードをスキャンし、フォーカスが私のアプリの編集テキストボックスにあるときは、スキャンされたデータが編集テキストに表示されます。アンドロイド - 外部キーボードから入力されたデータを取得する

このデータを編集テキストに含めて同時に取りたいと思っています。私はsetOnClickListenersetOnKeyListenerを使ってみました。誰かが知っているなら、私に知らせてください。

EDITED:私は、次の午前 ステップ:

  1. 私のプログラムは、簡単なエディットテキスト、ボタン、テキストボックスがあります。

  2. バーコードをハードウェア入力でスキャンすると、データがプログラムの編集テキストに挿入されます。

  3. ボタンをクリックすると、テキストの編集内容をテキストボックスにコピーします。

私は私のアプリは何をしたいか:

をできるだけ早くデータは、エディットテキストで表示されるように、私は、テキストボックスにコピーします。今、私はボタンのクリックでそれをやっています。

私のコードは次のとおりです。外部ハードウェアが編集テキストそのものにデータを表示しているかどうかは疑問です。

public class SimpleTextBoxActivity extends Activity {

Button btnClear, btnPairedList, btnAvailableList, btnPairedAvailableList,btnShowScan; 

EditText edtSacnnedData; 
BroadcastReceiver brSent; 
TextView txtShowScannedData; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    edtSacnnedData=(EditText) findViewById(R.id.edtData); 
    btnClear=(Button) findViewById(R.id.btnClear); 
    btnShowScan=(Button) findViewById(R.id.btnScannedText); 
    txtShowScannedData=(TextView) findViewById(R.id.txtScanData); 

    Log.d("my", "b4 set visibility"); 
    edtSacnnedData.setBackgroundColor(Color.BLACK); 

    Log.d("my", "after set visibility"); 
    btnClear.setOnClickListener(new OnClickListener() {   
     @Override 
     public void onClick(View v) { 
      edtSacnnedData.setText(""); 
      txtShowScannedData.setText(""); 
     } 
    }); 
    btnShowScan.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String str=edtSacnnedData.getText().toString(); 
      txtShowScannedData.setText(str); 
      edtSacnnedData.setText(""); 
     } 
    }); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy();  
} 

}

+0

詳細についてはお問い合わせください。 –

+0

任意のコードサンプルですか? –

+0

Can u Please コードを共有する –

答えて

2

addTextChangedListener(..)を使う必要があります。ここに興味深い議論のためのリンクです。 Text changed listener

0

あなたのクラスでそのeditText.setText(データ)のコードを探してみてください。

そのeditTextのsetText()メソッドのカッコ内にあるものは、あなたのデータであり、ここから使用できます。

私の前提が間違っている場合は、コードを共有してください。

+0

データは自分のものであると表示されていますが、私は余分なことを何も行いません。スキャンしたデータを編集可能なテキストボックスに挿入するのは、ハードウェアのプロパティです。 – Pallavi

+0

しかし、アプリはあなたのものです。その特定の編集テキストのデータを表示しているそのコードは、ハードウェアの役割はAndroidの携帯電話にバイトを配信するだけですが、編集テキスト自体には表示されません。あなたのアプリケーションコードを共有することができれば、私が言っていることを指摘します。 –

+0

がコードを投稿しました...私は何もしていません...ハードウェアは、データを編集テキストに直接入力するように設計されています。 – Pallavi

0

あなたのUIデザインにいくつかのIDを与え、作業をしてください。私はあなたに例を示しています。上記の例では

EditText editText; 
TextView textView; 

editText = (EditText) findViewById(R.id.editText); 
textView = (TextView) findViewById(R.id.textView); 

editText.setOnFocusChangeListener(new OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      textView.setText(editText.getText().toString()); 

     } 
    }); 

とすぐにあなたのフォーカスを移動すると、あなたのTextViewが更新されますか、他あなたはまた、使用することができます。

editText.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      textView.setText(editText.getText().toString()); 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 

これは一例です。あなたは自分のIDと名前を付けることができます。