用于 Json 解析数据的搜索视图
Posted
技术标签:
【中文标题】用于 Json 解析数据的搜索视图【英文标题】:Searchview for Json parsed data 【发布时间】:2019-02-22 04:04:53 【问题描述】:我已在列表视图中解析数据并显示出来。我必须在显示的数据中实现 searchview。我有一个 getmTitle () 函数,它在 listview 中具有列表的标题。现在,如果我在 searchview 中写入,listview 应该选择键入的标题并显示出来。
public class ImageListActivity
private String id;
private String title;
private String url_s;
public ImageListActivity(String id, String title, String url_s)
this.id = id;
this.title = title;
this.url_s = url_s;
public String getmId()
return id;
public String getmTitle()
return title;
public String getmUrl_s() return url_s;
下面是我的适配器类:
public class AdapterActivity extends ArrayAdapter<ImageListActivity>
public AdapterActivity(Activity context, ArrayList<ImageListActivity> image)
super(context, 0, image);
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent)
View listItemView = convertView;
if (listItemView == null)
listItemView = LayoutInflater.from(getContext()).inflate(R.layout.default_layout, parent, false);
ImageListActivity currentWord = getItem(position);
ImageView imageView = (ImageView) listItemView.findViewById(R.id.flickr_image);
try
Picasso.get()
.load(currentWord.getmUrl_s())
.into(imageView);
catch(NullPointerException e)
/* sets image to default image
*/
imageView.setImageResource(R.drawable.default_img);
TextView image_id = (TextView) listItemView.findViewById(R.id.flickr_id);
image_id.setText(currentWord.getmId());
return listItemView;
下面的代码我不知道该怎么做:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("Search Images");
toolbar.setTitleTextColor(Color.parseColor("#ffffff"));
searchView = (MaterialSearchView) findViewById(R.id.search_view);
searchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener()
@Override
public void onSearchViewShown()
@Override
public void onSearchViewClosed()
techListView.setAdapter(mAdapter);
SearchActivity.SearchAsyncTask task = new SearchActivity.SearchAsyncTask();
task.execute(USGS_REQUEST_URL);
);
searchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener()
@Override
public boolean onQueryTextSubmit(String query)
return false;
@Override
public boolean onQueryTextChange(String newText)
);
这是我的项目链接https://github.com/sivaperumal644/Gallery
【问题讨论】:
执行本地搜索或服务调用搜索需要什么 本地搜索,我已经从api中获取数据并显示在应用程序中。现在我有一个搜索栏,我必须为获取的数据实现搜索功能 【参考方案1】:您需要做两件事。首先在您的适配器中实现 Filterable,您需要在其中实现过滤数据的逻辑。其次,您需要在 onQueryTextChange() 中调用 adapter.getFilter() 来触发过滤器。请检查此链接。
https://www.androidhive.info/2017/11/android-recyclerview-with-search-filter-functionality/
【讨论】:
以上是关于用于 Json 解析数据的搜索视图的主要内容,如果未能解决你的问题,请参考以下文章
将 json_encoded 数据解析为用于 UIPickerView 的数组 - Xcode
在表格视图单元格中通过 alamofire 解析 json 数据