Android- получить данные, как они поступают с внешней клавиатуры

У меня есть планшетный сканер Bluetooth, подключенный к планшету. Всякий раз, когда я сканирую штрих-код и фокусируюсь на текстовом поле редактирования моего приложения, отсканированные данные появляются в тексте редактирования.

Я хочу взять эти данные одновременно, как это происходит в тексте редактирования. Я пытался использовать setOnClickListener, setOnKeyListener, Если кто-нибудь знает, пожалуйста, дайте мне знать.

Отредактированный: шаги, за которыми я следую:

  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();      
}

}

3 ответа

Решение

Вам нужно использовать addTextChangedListener(..) может быть полезным для вас. Вот ссылка для интересного обсуждения этого. Текст изменил слушателя

Попробуйте найти этот код editText.setText(data) в вашем классе.

Что бы ни было в ваших скобках метода setText() этого editText, это ваши данные, и вы можете использовать их здесь.

Если мое предположение неверно, пожалуйста, поделитесь своим кодом.

Дайте некоторые идентификаторы вашему дизайну пользовательского интерфейса и сделайте всю работу. Я показываю вам пример.

 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());

        }
    });

В приведенном выше примере, как только вы переместите фокус, ваше текстовое представление будет обновлено, иначе вы также можете использовать:

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

        }
    });

Это всего лишь пример. Вы можете дать свои собственные идентификаторы и имена.

Другие вопросы по тегам