2015-05-06 6 views
0

В настоящее время я создаю приложение, которое имеет EditText на панели действий. Я узнал, как разместить пользовательский вид на панели действий по следующей ссылке: How to set a custom view in actionbar in android?. Я использовал getSupportActionBar для загрузки EditText в панель действий.Как сделать пользовательский вид (EditText) на панели задач автоматически выбран?

getSupportActionBar.setCustomView(R.layout.actionbar_view); 

Он загружает XML-файл под названием actionbar_view.xml. Код для этого XML-файла приведен ниже.

<?xml version="1.0" encoding="utf-8"?> 
<EditText xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/searchfield" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:hint="Search for some app" > 

</EditText> 

Проблема заключается в том, что в отличие от всех нормальных EditTexts размещенных на площади ниже ActionBar редактирования текста на ActionBar не выбирается автоматически. Есть ли способ сделать этот текст редактирования на панели действий автоматически выбранным?

Кстати, я взглянул на следующую ссылку: How to focus and show soft keyboard when a EditText is shown in action bar? К сожалению, я попытался понять решение и применить к моему коду, но текст редактирования по-прежнему не был выбран автоматически. Я все еще довольно новичок в переполнении стека, поэтому, если я не предоставил достаточную информацию/код для решения моей проблемы, скажите мне в комментариях. Спасибо!

ответ

1

О, так что после ряда исследований я нашел метод, называемый фокусом запроса. Запрос Фокус запросит фокус для editText, НО мне также нужно добавить еще две строки кода. Эти две строки кода выведут клавиатуру, когда будет выбран editText. Задача решена! Ниже приведен пример того, как я запросил фокус для редактирования текста на панели действий.

searchq.requestFocus(); 
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.showSoftInput(searchq, InputMethodManager.SHOW_IMPLICIT); 
0

Ну есть альтернатива, чтобы сделать пользовательский вид, как вы хотите .. Вы не должны делать это в ActionBar Вы можете просто Скройте ActionBar и сделать свой собственный вид в xml, потому что вы могли бы сталкиваются с некоторыми ограничениями при использовании в actionbar .. Надеюсь, что это может помочь ...

Смежные вопросы