簡體   English   中英

如何獲取在操作欄中搜索中輸入的文本字符串?

[英]How can i get the text entered in search in action bar to a string?

我有一個活動可以完美顯示標題欄中的搜索,但是現在我想將在操作欄中的搜索中輸入的文本轉換為字符串。 請幫忙 !

她是我的菜單/ xml

<?xml version="1.0" encoding="utf-8"?>

<item android:id="@+id/action_search"
      android:title="Search"
      android:icon="@android:drawable/ic_menu_search"
      android:showAsAction="always"
       android:actionViewClass="android.widget.SearchView"
      />


</menu>

她是onCreate中的代碼

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
     ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);  

您使用過searchView嗎? 您可以使用以下代碼:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.main, menu);

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.menu_search)
            .getActionView();
    if (null != searchView) {
        searchView.setSearchableInfo(searchManager
                .getSearchableInfo(getComponentName()));
        searchView.setIconifiedByDefault(false);
    }

    SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
        public boolean onQueryTextChange(String newText) {
            // This is your adapter that will be filtered
            return true;
        }

        public boolean onQueryTextSubmit(String query) {
            // **Here you can get the value "query" which is entered in the search box.**

        }
    };
    searchView.setOnQueryTextListener(queryTextListener);

    return super.onCreateOptionsMenu(menu);
}

如果您使用的是工具欄 ,則可以執行以下操作:

MenuItem menuItem = getToolbar().getMenu().findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            Log.i("well", " this worked");
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            Log.i("well", " this worked");
            return false;
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM