【发布时间】:2014-02-02 18:27:41
【问题描述】:
我想通过ActionBar 中的SearchView 将搜索功能添加到我的应用程序中 - 我有带有一些对象的ListView。提交搜索后,我想显示搜索查询中包含的数据,以显示在 ListView 的另一个活动中。我使用Parse.com 框架来存储数据。我遵循this 简单教程,但我知道它不是用于搜索ListView 项目,而是搜索全球项目 - 下载的应用程序等。
在MainActivity.class中设置SearchView
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
setupSearchView(searchItem);
return true;
}
private void setupSearchView(MenuItem searchItem) {
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
if (searchManager != null) {
List<SearchableInfo> searchables = searchManager.getSearchablesInGlobalSearch();
SearchableInfo info = searchManager.getSearchableInfo(getComponentName());
for (SearchableInfo inf : searchables) {
if (inf.getSuggestAuthority() != null
&& inf.getSuggestAuthority().startsWith("applications")) {
info = inf;
}
}
mSearchView.setSearchableInfo(info);
}
mSearchView.setOnQueryTextListener(this);
}
@Override
public boolean onQueryTextChange(String arg0) {
return false;
}
@Override
public boolean onQueryTextSubmit(String arg0) {
Toast.makeText(getBaseContext(), "submited", Toast.LENGTH_SHORT).show();
return false;
}
我的 Animal.class - getter 和 setter(查看 //note):
@ParseClassName("Animal")
public class Animal extends ParseObject{
public Animal(){
}
public String getAnimal(){ //I want to search by these objects
return getString("animal");
}
public void setAnimal(String animal){
put("animal", animal);
}
public String getArea(){
return getString("area");
}
public void setArea(String area){
put("area", area);
}
public String getImgUrl(){
return getString("imgUrl");
}
public void setImgUrl(String imgUrl){
put("imgUrl", imgUrl);
}
public String getAbout(){
return getString("about");
}
public void setAbout(String about){
put("about", about);
}
}
您知道,是否有某种方法可以自定义它以在 ListView 中搜索我的项目?还是有完全不同但更好的方法,该怎么做?
提前致谢
【问题讨论】:
-
您之前删除并重新发布了同样的问题?
-
是的,我必须这样做。标题不太准确,重命名似乎没用。抱歉这种尴尬的行为..
标签: android android-listview android-actionbar parse-platform android-search