Копировать физическую клавиатуру на эмуляторе Android - PullRequest
1 голос
/ 16 февраля 2011

У меня есть несколько отчетов о моем недавнем приложении об ошибке, связанной с телефоном с физической клавиатурой, EditText и изменением ориентации.

У меня нет телефона с физической клавиатурой, поэтому мне нужно как-то повторить проблему. На экране создания эмулятора под менеджером AVD в Eclipse есть опция для «поддержки клавиатуры». Это то, как я буду копировать телефон с физической клавиатурой на эмуляторе?

Существуют ли другие способы устранения проблемы? Спасибо.

Редактировать по запросу : текущие симптомы, сообщенные пользователем:

  1. EditText Предпочтение не сохраняется (я делаю это предположение на основе их ввода)
  2. Что-то из-за активности, которая не переключает ориентацию должным образом, когда пользователь открывает клавиатуру. Требуется, чтобы пользователь открыл его дважды.

Полный код активности. ПРИМЕЧАНИЕ: EditText ниже не является проблемой EditText.

public class GreetingOptions extends PreferenceActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.layout.greeting_options);

        //Set the edit text preference to only accept positive integers
        EditTextPreference fontSize = (EditTextPreference) findPreference("fontSize");
        EditText myEditText = (EditText) fontSize.getEditText();
        myEditText.setKeyListener(DigitsKeyListener.getInstance(false, false));

    }
}

Ответы [ 2 ]

2 голосов
/ 16 февраля 2011

Когда пользователь выдвигает физическую клавиатуру, ваше приложение уничтожается и воссоздается, точно так же, как то, что происходит при изменении ориентации. Я бы предложил попытаться повторить проблему, используя изменение ориентации. Вы можете сделать это в эмуляторе, используя:

Переключение на предыдущую ориентацию макета (например, книжная, альбомная) KEYPAD_7, Ctrl-F11
Переключиться на следующую ориентацию макета (например, книжная, альбомная) KEYPAD_9, Ctrl-F12

Для устранения проблемы, я подозреваю, вам нужно будет сохранить состояние Activity, когда ваше приложение уничтожено, и восстановить его, когда оно будет создано заново. Может оказаться полезным просмотреть жизненный цикл приложения.

1 голос
/ 16 февраля 2011

На самом деле это не ответ, но мой опыт работы с эмулятором заключается в том, что его поддержка любых «физических» входов ограничена ничем.Даже попытка смоделировать подключенную гарнитуру - это больше, чем она могла бы выдержать.

Я бы посоветовал вам попытаться попросить, одолжить или украсть настоящий телефон с клавиатурой и установить на него приложение.*

Извините, я не могу больше помочь: (

...