2015-06-26 2 views
0

Я пытаюсь установить прослушиватель в searchview, используя библиотеку поддержки внутри фрагмента, но получил ошибку: не удается найти onQueryTextListener. Что-то не так с моим кодом?onQueryListener с SearchView не работает

onQueryTextListener определенно существует.

Java код:

package com.example.yagamizero.myapplication; 

import android.app.Fragment; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v4.view.MenuItemCompat; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.support.v7.widget.SearchView; 

public class ArtistSearchFragment extends Fragment { 
    SearchView searchView; 
    public ArtistSearchFragment(){ 

    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     getActivity().setContentView(R.layout.fragment_artist_search); 
     View rootView = inflater.inflate(R.layout.fragment_artist_search, container, false); 

     return rootView; 
    } 

    @Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 

     super.onCreateOptionsMenu(menu,inflater); 
     MenuItem searchItem = menu.findItem(R.id.action_search); 
     searchView = (android.support.v7.widget.SearchView) MenuItemCompat.getActionView(searchItem); 
     searchView.setOnQueryTextListener(searchQueryListener); 

    } 

    private onQueryTextListener searchQueryListener = new onQueryTextListener() { 
     @Override 
     public boolean onQuerySubmit(String query){ 

      return true; 
     } 
     public boolean onQueryTextChange(String newText){ 

      return true; 
     } 
    }; 
} 
+0

код выглядит хорошо. Сообщается ли ошибка во время сборки или времени выполнения? Можете ли вы разместить содержимое сообщения об ошибке? –

ответ

0

OnQueryTextListener представляет собой интерфейс вложенная внутри SearchView класса, так что вам нужно определить это так:

private SearchView.OnQueryTextListener searchQueryListener = new SearchView.OnQueryTextListener() { 
    @Override 
    public boolean onQueryTextSubmit(String query) { 
     return false; 
    } 

    @Override 
    public boolean onQueryTextChange(String newText) { 
     return false; 
    } 
}; 
+0

Работал отлично! Большое спасибо. – tgldr0511

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