如何将功能性搜索栏添加到导航抽屉中



我正在开发一个壁纸应用程序,它可以从Picasa加载图片。我有一个导航抽屉,可以从Pic阿萨相册名称中检索它的项目名称(我使用的是本教程链接的源代码),所以我想添加一个搜索栏来过滤导航抽屉中的项目,有什么想法吗?

可能有点晚了。但可能会帮助他人。

  1. 将EditText添加到导航抽屉。(activity_main.xml)

    <EditText
       android:id="@+id/inputSearch"
       android:layout_width="match_parent"
       android:layout_height="40dp"
       android:layout_margin="10dp"
       android:hint="search" 
       android:padding="10dp"
       android:layout_marginTop="25dp"
       android:inputType="text" >
     </EditText>
    
  2. 添加一个TextWatcher来编辑Text。(将以下行添加到onCreate

       final EditText inputSearch = (EditText) findViewById(R.id.inputSearch);
        inputSearch.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
            // TODO Auto-generated method stub
            //You should use the adapter in NavigationDrawerFragment
            NavigationDrawerFragment.adapter.getFilter().filter(cs);
        }
        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3) {
            // TODO Auto-generated method stub
        }
        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
        }
    });
    

希望这能有所帮助。

您可以将导航抽屉设为包含实现FilterableArrayAdapterFragment。此适配器将包含您的Picasa相册名称列表。

对于搜索框,一个简单的EditText就可以完成这项工作。注册一个TextWatcher,它将侦听文本更改事件,并在ArrayAdapter.getFilter()返回的Filter上触发Filter.filter(),并将输入文本作为查询。

最新更新