#java #android #keyevent
#java #Android #ключевое событие
Вопрос:
Что я хочу сделать, так это вызвать действие click() при срабатывании определенного ключевого события. Я могу обработать событие нажатия клавиши для определенного объекта, но что, если есть 2 разных интерактивных объекта (скажем, один — это картинка, а другой — кнопка, и действия по нажатию ведут себя по-разному).
Итак, я просто хочу перехватить событие, а затем позволить Android вести себя как щелкнуло (не нажимая клавишу вниз).
Спасибо
Редактировать :
Наконец-то я нахожу решение.
шаги для этого :
-реализовать OnKeyListener -вызовите метод performClick() объекта, который является подклассом view, и вы хотите вызвать onclick.
Пример кода :
button.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
view.performClick();
Toast.makeText(
context,
"button onkey - " i,
Toast.LENGTH_LONG)
.show();
return false; //return true if you want to stop the rest of same key event processing.
}
Я боюсь забыть написать решение позже. Я просто пишу несколько часов. Тогда я получу ответ на новый ответ.
Ответ №1:
Я не уверен, что полностью понимаю ваш вопрос. Вы хотите только фиксировать событие или вы хотите что-то сделать, когда пользователь нажимает a View
? Вот как вы можете это сделать, если это последнее…
OnClickListener()
Пример:
private Button btn;
btn = (Button) findViewById(R.id.buttonId);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Handle your click events here
}
});
Просто сделайте то же самое с ImageView
.
Документация:
http://developer.android.com/reference/android/view/View .OnClickListener.html
Комментарии:
1. Итак, что я буду вызывать,
public boolean onKeyDown ( int keyKode, KeyEvent event ) { ... }
мне нужно установить действие, подобное нажатию на экран. Мне нужно вызвать действие щелчка activity. не принадлежащий объекту.2. Можно создать OnClickListener() для всего действия, реализовав View . OnClickListener. Все еще не уверен, что это то, что вы ищете…
3. Я думаю, что нашел способ, которым я буду следовать. Мне нужно реализовать OnKeyListener объекта для вызова
performClick();