我正在开发一个壁纸应用程序,从Picasa加载它的图像我有一个导航抽屉,从Picasa相册名称中检索它的项目名称 (我正在使用本教程的源代码Link),所以我想添加一个搜索栏,用于过滤导航抽屉中的项目,有关如何实现此目的的任何想法吗?
答案 0 :(得分:3)
可能有点晚了。但可以帮助别人。
将EditText添加到导航Drawer。(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添加到editText。 (将以下行添加到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
}
});
希望这有帮助。
答案 1 :(得分:0)
您可以将导航抽屉设为Fragment
,其中包含ArrayAdapter
,其中包含Filterable
。此适配器将包含您的Picasa相册名称列表。
对于搜索框,一个简单的EditText
可以完成这项工作。注册一个可以收听文字更改事件的TextWatcher
,并在Filter
的{{1}}上点击Filter.filter()
并输入文字作为查询。