«Нет клавиатуры для id 0» - что это значит? - PullRequest
8 голосов
/ 12 июня 2011

Каждый раз, когда открывается мое меню опций (вызывается onCreateOptionsMenu (..)), Я получаю эти предупреждения:

"Нет клавиатуры для идентификатора 0"

и

"Использование таблицы ключей по умолчанию: /system/usr/keychars/qwerty.kcm.bin"

Я не мог понять, что они имеют в виду, кто-нибудь знает? Мне не понравился этот ответ .

Вот простой код, который я использую:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.optmenu_start, menu);
    return true;
}

и файл optmenu_start.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:id="@+id/optmenu_prefs"
    android:title="@string/optmenu_prefs"
    android:icon="@drawable/icon_menu_prefs"
  />
  <item
    android:id="@+id/optmenu_help"
    android:title="@string/optmenu_help"
    android:icon="@drawable/icon_menu_help"
  />
</menu>

Ответы [ 2 ]

13 голосов
/ 12 июня 2011

Google ответит

"Журнал нормальный; это происходит в первый раз, когда требуется раскладка клавиатуры для устройства в процессе. «

http://groups.google.com/group/android-developers/browse_thread/thread/477caf755085b108

Поэтому, если вы запустили Activity2 до Activity1, вы увидите предупреждение в Activity2, а не Activity1!

Как я уже сказал, я думаю, что многие разработчики получают это сообщение, и это просто предупреждение, а не ошибка; это можно игнорировать.

1 голос
/ 28 апреля 2015

Как сказал @Blundell, это нормально.Но он всегда использует первое событие keyPressed.Наконец, я добавляю это в init:

setFocusableInTouchMode(true);

Я не знаю почему, но это предупреждающее сообщение больше никогда меня не раздражает.

...