2015-01-14 10 views
5

У меня есть SearchView в действии; когда пользователь выполняет поиск, Fragment, содержащий результаты поиска, добавляет к той же Деятельности.Android SearchView OnFocusChangeListener: onFocusChange вообще не вызывается

Теперь то, что я хочу, что когда SearchView нажата (поэтому он получает фокус, и пользователь там), Fragment в уже отображенные (containig в результаты поиска) должны стать тусклым/размыта.

Так что я попытался установить OnFocusChangedListener для SearchView в onActivityCreated жизненного цикла метода обратного вызова Fragment, но это, кажется, не будет вызываться.

final Activity myActivity = getActivity(); 
     Log.i(TAG, "myActivity>"+myActivity.toString());//check 
     SearchView mySearchView = (SearchView) myActivity.findViewById(R.id.searchActivity_searchView); 
     Log.i(TAG, "mySearchView>"+mySearchView.toString());//check 
     mySearchView.setOnFocusChangeListener(new OnFocusChangeListener() { 
      @SuppressLint("NewApi") 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       Log.i(TAG, "onFocusChange OF OnFocusChangeListener IN SearchResultsFragment CALLED."); 
       if (hasFocus) { 
        myActivity.getWindow().setDimAmount(1.0f); 
       } 
      } 
     }); 

Так что я что-то упускаю? Что нужно сделать, чтобы вызвать вызываемый onFocusChanged, когда пользователь нажимает и, таким образом, активирует SearchView, чтобы ввести в него свой поисковый запрос?

Примечание: Если требуется полный код SSCCE, просьба указать в комментариях, я отправлю его.

+0

Почему бы вам не попробовать его с помощью setOnClickListener()? – MohanRaj

+0

@MohanRaj Просто попробовал это, даже если это не называется = ( – Solace

+0

Вы можете попробовать это прямо в действии, которое содержит ваш поиск, вместо получения ссылки внутри фрагмента – MohanRaj

ответ

20

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

Вы пытались использовать mySearchView.setOnQueryTextFocusChangeListener() вместо mySearchView.setOnFocusChangeListener()?

Работал для меня.

+0

Мне нужно попробовать. Я вернусь к вам после этого. – Solace

+0

Спасибо, это сработало –

+0

Спасибо, это сработало! –

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