Как мога да накарам моята активност за търсене да се стартира, когато се щракне върху приспособлението ми за лента за търсене, а не когато натисна enter?

Имам приспособление за лента за търсене в горната част на изглед на карта и това, което бих искал е, когато щракна върху това приспособление, изгледът на картата се заменя от изглед на списък, който динамично променя показаните елементи, докато въвеждам заявката си и запазва приспособлението на лентата за търсене отгоре. След това, когато натисна стрелката назад на изпълнимия модул на лентата за търсене, се връщам към изгледа на картата. Досега внедрих лентата за търсене според урока и когато натисна Enter, тя стартира друга дейност, която съдържа изгледа ми на списък, но това не е това, което искам, тъй като приспособлението за лентата за търсене изчезва.

Въпросът ми е има ли начин да постигна това с помощта на приспособлението на лентата за търсене, или трябва просто да внедря edittext и да променя фрагмента, когато се щракне върху edittext?


person Bender Rodriguez    schedule 16.06.2015    source източник


Отговори (1)


Имах същия проблем и начинът, по който внедрих, е, че имам нормална икона на менюто за търсене в Дейност 1 и onClick отваря друга ListViewActivity.

SearchManager searchManager =
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    final MenuItem searchItem = menu.findItem(R.id.search);
    final SearchView searchView =
            (SearchView) searchItem.getActionView();
    searchView.setSearchableInfo(
            searchManager.getSearchableInfo(getComponentName()));

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {
            // Some code here
            return false;
        }

        @Override
        public boolean onQueryTextChange(String s) {
            // Some code here
            return false;
        }
    });

    MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
        @Override
        public boolean onMenuItemActionExpand(MenuItem item) {
            // Some code here
            return true;
        }

        @Override
        public boolean onMenuItemActionCollapse(MenuItem item) {
            // Some code here
            return true;
        }
    });

    // Get the search close button
    ImageView closeButton = (ImageView) searchView.findViewById(R.id.search_close_btn);
    closeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // Some code here

            EditText et = (EditText) findViewById(R.id.search_src_text);
        }
    });

Можете да замените текстовия изглед в самия searchView, така че да не се налага да прилагате персонализиран редактиращ текст и бутон за затваряне и връщане назад

person pratsJ    schedule 16.06.2015