【问题标题】:Get drop down list for search view in action bar获取操作栏中搜索视图的下拉列表
【发布时间】:2015-09-23 12:06:55
【问题描述】:

你们能给我建议吗?如何编辑此搜索视图,以显示像 autoCompleteTextView 中的下拉列表?需要它来提供数学项目,下一步是 onClick

 ...
 final MenuItem searchItem = menu.findItem(R.id.search);
 setupSearchView(searchItem);
 ...

 private void setupSearchView(MenuItem searchItem) {
 mSearchView = (SearchView) searchItem.getActionView();
 mSearchView.setQueryHint(getString(R.string.product_id));
 mSearchView.setQuery(mSearchQuery, false);
 mSearchView.setIconified(!mExpandSearch);
 final int searchIconResId = getResources().getIdentifier("android:id/search_button", null, null); 
 final ImageView searchIcon = (ImageView) mSearchView.findViewById(searchIconResId);
    searchIcon.setImageResource(R.drawable.ic_action_search);  //
 ...

xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/search"
    android:showAsAction="always"
    android:icon="@drawable/ic_action_search"
    android:title="@string/search"
    android:actionViewClass="android.widget.SearchView" />

</menu>

【问题讨论】:

    标签: android search android-actionbar


    【解决方案1】:

    您可以使用 AutoCompleteTextView 代替 SearchView

    <AutoCompleteTextView
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:imeOptions="actionSearch"
            android:inputType="textAutoComplete|textAutoCorrect"
            android:textColor="#FFFFFF" >
    
            <requestFocus />
        </AutoCompleteTextView>
    

    在活动中

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, autocompletelistvalues);
        AutoCompleteTextView textView = (AutoCompleteTextView) v
                .findViewById(R.id.editText1);
        textView.setAdapter(adapter);
    

    包含此以动态过滤

     textView.addTextChangedListener(new TextWatcher() {
    
            public void onTextChanged(CharSequence s, ....){
                //update your List based on CharSequnce entered  
            textView.setAdapter(filteredadapter);
             notifyDataSetChanged();
            }
        });
    

    【讨论】:

    • 嗯,但我需要启动请求取决于您开始输入的内容,然后显示一些选项
    • 我猜这对你有用,我已将其更新为根据您输入的文本动态更改
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 2016-11-05
    • 2015-10-05
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多