#android #focus #android-edittext
#Android #фокус #android-edittext
Вопрос:
У меня есть EditText
serialText = (EditText) findViewById(R.id.pinText);
Теперь, нажав на кнопку somebutton, я должен сфокусироваться на редактировании текста, чтобы что-то написать. Но когда я нажимаю внутри текста редактирования для записи, фокус удаляется, т. Е. Все, что я печатаю, не отображается в редактируемом тексте
Это код для этого,
public void method(View v) {
arrowButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
serialNumber = serialText.getText().toString();
if (serialNumber.equals("")) {
} else {
}
} }...
Здесь, если я ничего не печатаю, это приводит к циклу if без каких-либо проблем, но аналогичного не происходит для другой части.
Не могли бы вы мне помочь?
Это мой полный код
public void onClick(View v) {
if (v.getId() == R.id.pinBtn) {
arrowButton = (Button) findViewById(R.id.arrowBtn);
serialText = (EditText) findViewById(R.id.pinText);
serialText.setVisibility(View.VISIBLE);
arrowButton.setVisibility(View.VISIBLE);
//serialNumber = serialText.getText().toString();
arrowButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
serialNumber = serialText.getText().toString();
if (serialNumber.equals("")) {
Toast.makeText(getApplicationContext(),
"Please enter the serial number",
Toast.LENGTH_SHORT).show();
}
else {
isRegularSerialNumber(serialNumber);
String encodedserialNumber = Base64.encodeToString(
serialNumber.getBytes(), Base64.DEFAULT);
receiveSerialData(encodedserialNumber);
if (serialResponse.equals("Validated Successfully!")) {
showAudio(v);
} else {
Toast.makeText(getApplicationContext(),
"Invalid Serial Number", Toast.LENGTH_SHORT)
.show();
}
}
}
});
}
}
Спасибо
Ответ №1:
Наконец, я решил проблему, проблема заключалась в том, что когда мы сохраняем текст редактирования в listview, и когда мы пытаемся написать внутри него, клавиатура поднимает listview вверх. Итак, нам нужно добавить свойство android:windowSoftInputMode=»adjustPan» в listview или в действие, содержащее представление списка в файле манифеста.
Ответ №2:
Вместо использования serialNumber.equals("")
попробуйте заменить его на:
serialNumber.length() == 0
или
serialNumber.matches("")
Комментарии:
1.
serialNumber.equals("")
не должно вызывать никаких проблем
Ответ №3:
Опубликованный вами код является onClick()
of arrowButton
, вы должны опубликовать onClick()
serialText
Комментарии:
1. serialText.setOnClickListener(новый OnClickListener() { @Override public void onClick(Просмотр arg0) { SerialNumber = serialText.getText().toString(); } });