我正在开发一个壁纸应用程序,它可以从Picasa加载图片。我有一个导航抽屉,可以从Pic阿萨相册名称中检索它的项目名称(我使用的是本教程链接的源代码),所以我想添加一个搜索栏来过滤导航抽屉中的项目,有什么想法吗?
可能有点晚了。但可能会帮助他人。
-
将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>
-
添加一个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 } });
希望这能有所帮助。
您可以将导航抽屉设为包含实现Filterable
的ArrayAdapter
的Fragment
。此适配器将包含您的Picasa相册名称列表。
对于搜索框,一个简单的EditText
就可以完成这项工作。注册一个TextWatcher
,它将侦听文本更改事件,并在ArrayAdapter.getFilter()
返回的Filter
上触发Filter.filter()
,并将输入文本作为查询。