Я новичок в 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.