переопределить нажатие BackButton в SearchView - PullRequest
0 голосов
/ 14 декабря 2018

Я схожу с ума от использования SearchView в fragment, и кнопка «Назад» всегда отображается независимо от того, коснулся ли я панели поиска или нет, и я выполняю поиск, но у меня проблема, что кнопка «Назад» не делает ничего, кроме очисткитекст в поиске, я хотел бы использовать его для переключения между fragments.Я пробовал много решений в вопросах переполнения стека, но, похоже, не решил мою проблему.код после добавления toolbar в fragment:

    @Override
   public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.search_menu_fragment, menu);
    MenuItem searchItem = menu.findItem(R.id.action_search_locations);
    SearchView searchView = new SearchView(((AppCompatActivity)getActivity()).getSupportActionBar().getThemedContext());
    MenuItemCompat.setShowAsAction(searchItem, searchItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW ); //searchItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW |
    MenuItemCompat.setActionView(searchItem, searchView);

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            // filter recycler view when query submitted
            locationStatesPreviewAdapter.getFilter().filter(query);
            return false;
        }

        @Override
        public boolean onQueryTextChange(String query) {
            // filter recycler view when text is changed
            Log.e("QueryChange",query);
            locationStatesPreviewAdapter.getFilter().filter(query);
            return false;
        }
    });

}

в файле xml есть только пункт поиска в меню:

       <?xml version="1.0" encoding="utf-8"?>
       <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
       <item android:id="@+id/action_search_locations"
       xmlns:app="http://schemas.android.com/apk/res-auto"
       android:title="@string/app_name"
       android:icon="@android:drawable/ic_menu_search"
       app:showAsAction="always|collapseActionView"
       app:actionViewClass="android.support.v7.widget.SearchView" />
       </menu>

Спасибо.

1 Ответ

0 голосов
/ 15 декабря 2018

Это была проблема неправильного понимания, так как я думал, что это кнопка «Назад» в SearchView во фрагменте, а потом это была кнопка навигации на панели инструментов и после добавления этих строк, чтобы сделать его отзывчивым и все готово!спасибо за помощь всем.

    ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
    ((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("TOOLBAR");

    toolbar.setNavigationOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view) {
            Toast.makeText(getActivity(), "Back clicked!", Toast.LENGTH_SHORT).show();
        }
    });
...