Ответ 1
Первый щелчок просто устанавливает фокус на TextBox, тогда второй клик фактически обрабатывается как клик. Вместо использования onClickListener вам может быть повезло с onFocusChangeListener
У меня есть TextView
со следующим кодом назначения:
Answer1TextView = (TextView) findViewById(R.id.editText1);
Answer1TextView.setOnClickListener(answer1TextViewListener);
и вот мой onClickListener:
private OnClickListener answer1TextViewListener = new OnClickListener()
{
public void onClick(View v)
{
if(Answer1Win){
Toast.makeText(QuizScreen.this,"Correct ",2).show();
} else
{
Toast.makeText(QuizScreen.this,"Incorrect, Pick Another Answer",2).show();
}
}
};
Моя проблема заключается в том, что после двойного нажатия отображается только тост. Я не могу найти настройки приводов такого поведения, что может быть неправильным, чтобы не отображаться после одного крана.
Первый щелчок просто устанавливает фокус на TextBox, тогда второй клик фактически обрабатывается как клик. Вместо использования onClickListener вам может быть повезло с onFocusChangeListener
Как сказал Крис, первый щелчок фокусирует TextView
, а второй - нажимает на него.
Настройка android:focusableInTouchMode="false"
устраняет проблему для сенсорных экранов, но без нарушения функциональности для устройств без сенсорного экрана.
Если бы вы просто использовали android:focusable="false"
, что помешало бы, например, пользователям d-pad вообще щелкнуть представление.
Проблема может заключаться в том, что textIsSelectable является истинным. Установите textIsSelectable="false"
для TextView в XML.
Правильный способ сделать это: android:clickable="true"
используйте OnTouchListener
вместо onFocusListener
триггеры дважды, когда вы входите и покидаете клавишу