Проверьте, есть ли на устройстве Android кнопка поиска оборудования - PullRequest
9 голосов
/ 01 сентября 2011

Мне нужна помощь, чтобы выяснить, как проверить, оснащено ли устройство кнопкой поиска или нет. Возможно ли это?

РЕДАКТИРОВАТЬ: я говорю о том, чтобы выяснить, есть ли на устройстве кнопка поиска оборудования или нет. Простой вопрос Каждое устройство Android имеет набор аппаратных кнопок; меню, домашняя кнопка, кнопка возврата и кнопка поиска. Но некоторые устройства оснащены только некоторыми из них, а не всеми.

РЕДАКТИРОВАТЬ 2: Причина, по которой я спрашиваю, заключается в том, что я хочу, чтобы в моем пользовательском интерфейсе отображалась программная кнопка, если устройство не оснащено аппаратной кнопкой. В своей деятельности я использую searchable интерфейс. Я не придерживаюсь подхода EditText / TextField.

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

Не думаю, что вам нужно определять, есть ли на самом деле кнопка поиска оборудования.Фреймворк поможет вам в этом (хотя, я уверен, этот процесс упростится после выпуска Ice Cream Sandwich)

В настоящее время единственными устройствами, которые не имеют аппаратного поиска, являются планшеты Honeycomb.Поэтому, используя android:targetSdkVersion="11" (или выше), добавив implements OnQueryTextListener к вашему Fragment или Activity, а затем добавив что-то вроде:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.notebooks_menu, menu);
    final SearchView sv = new SearchView(getActivity());
    sv.setOnQueryTextListener(this);
    menu.findItem(R.id.search_notebooks).setActionView(sv);
}

, вы по существу решите проблему.Теперь, чтобы заставить его работать на устройствах, предшествующих Honeycomb, вам может потребоваться использовать библиотеку совместимости или использовать отражение или некоторые другие средства защиты в вашем коде.*

Samsung Galaxy S II не имеет специальной кнопки поиска оборудования, но если вы удерживаете кнопку меню нажатой в течение нескольких секунд, он начнет действовать как кнопка поиска оборудования.

0 голосов
/ 01 сентября 2011

Лучше вы можете сделать это двумя способами

  1. поставить кнопку поиска и вызвать onSearchRequested();

  2. Второй способ нажмитеeditText поставить android:imeOptions="actionSearch", поэтому вам нужно
    проверить ключ

    searchBox.setOnEditorActionListener(new OnEditorActionListener()
    {
        public boolean onEditorAction(TextView textView, int id,KeyEvent event) 
        {
        if (id == EditorInfo.IME_ACTION_SEARCH)
            {
                 //do what ever you want
            }
        return true;
        }
    });
    

Надеюсь, это поможет вам.

...