Есть ли способ сделать EditText всегда в фокусе без прикосновения? - PullRequest
0 голосов
/ 18 февраля 2019

Я новичок в Android, и у меня есть некоторые проблемы с моим кодом.

Я хочу создать Портативный терминал данных для моего финального экзамена в колледже,

Задача,

Не знаюНе знаю, как заставить EditText в Android Studio всегда фокусироваться, я имею в виду, когда я сканирую штрих-код с помощью расширенного сканера, сканер отправляет некоторый штрих-код в EditText в приложениях, сканер поставляется с клавишей ввода, а после нажатия / нажатия клавиши вводаданные перемещаются в базу данных, и текст EditText по-прежнему фокусируется для следующего сканирования, но в режиме реального времени после нажатия кнопки EnterText теряется фокус

Я пытался использовать EditText.requestFocus(), но он не работает,

Код

PluCode.setOnKeyListener(new View.OnKeyListener() {  

  @Override

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN && (keyCode == 
KeyEvent.KEYCODE_ENTER)){

               DBAdapter dbAdapter = new 
DBAdapter(getApplicationContext(),null,null,1);
                String kodetoko = StoreCode.getSelectedItem().toString();
                String plutoko = PluCode.getText().toString();
                String qtytoko = Qty;
                TransactionModel transactionmodel = new 
TransactionModel(kodetoko,plutoko,qtytoko);

                dbAdapter.onOpen();
                dbAdapter.insertTransaction(transactionmodel);
                Cursor cursor = dbAdapter.showAllData2();
                cursor.moveToFirst();
                TableLayout tablelayouttransaction = 
(TableLayout)findViewById(R.id.transactionTableLayout);
                int childCount = tablelayouttransaction.getChildCount();

                // refresh row
                if (childCount > 0) {
                    tablelayouttransaction.removeViews(0, childCount);
                    int countrow = tablelayouttransaction.getChildCount();
                    if(countrow == 0){
                        do {
                            TableRow row = (TableRow) 
getLayoutInflater().inflate(R.layout.layout_row_transaction, null);
                            ((TextView) 
row.findViewById(R.id.idkodetoko)).setText(cursor.getString(0));
                            ((TextView) 
row.findViewById(R.id.idplu)).setText(cursor.getString(1));
                            ((TextView) 
row.findViewById(R.id.idqty)).setText(cursor.getString(2));
                            tablelayouttransaction.addView(row);

                        } while (cursor.moveToNext());

                    }
                }else{
                    do {
                        TableRow row = (TableRow) 
getLayoutInflater().inflate(R.layout.layout_row_transaction, null);
                        ((TextView) 
row.findViewById(R.id.idkodetoko)).setText(cursor.getString(0));
                        ((TextView) 
row.findViewById(R.id.idplu)).setText(cursor.getString(1));
                        ((TextView) 
row.findViewById(R.id.idqty)).setText(cursor.getString(2));
                        tablelayouttransaction.addView(row);

                    } while (cursor.moveToNext());

                }

                dbAdapter.close();
                PluCode.getText().clear();
                PluCode.requestFocus();
                displayToast("Data saved");

                return true;
            }
            return false;
        }
    });

Мне нужно перефокусировать PluCode после нажатия клавиши Enter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...