用于 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图像解析IOS Swift 3.0

将 json_encoded 数据解析为用于 UIPickerView 的数组 - Xcode

在表格视图单元格中通过 alamofire 解析 json 数据

将 JSON 数据解析为 ListView

使用 NSJSONSerialization 解析 twitter 搜索 json 数据

在视图控制器之间解析 JSON 数据