Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中使用json响应的搜索功能?_Android_Json_Gridview_Android Edittext_Android Search - Fatal编程技术网

如何在android中使用json响应的搜索功能?

如何在android中使用json响应的搜索功能?,android,json,gridview,android-edittext,android-search,Android,Json,Gridview,Android Edittext,Android Search,您好,我正在使用json响应,在gridview中显示图像和文本。它已成功显示。我需要使用edittext在gridview顶部使用搜索。但当我输入时,搜索不起作用 这是我的密码 List<PonyTail> ponyList = new ArrayList<PonyTail>(); private PonyTailAdapter gridAdapter; private String dataPath; private EditText search; sear

您好,我正在使用json响应,在gridview中显示图像和文本。它已成功显示。我需要使用edittext在gridview顶部使用搜索。但当我输入时,搜索不起作用

这是我的密码

List<PonyTail> ponyList = new ArrayList<PonyTail>();
private PonyTailAdapter gridAdapter;
private String dataPath;
private EditText search;
    search = (EditText) rootView.findViewById(R.id.hairstyle_name);
    search.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            String text= search.getText().toString();
            List<PonyTail> list = searchs(text);
        }
        //this is not working :-(
        private List<PonyTail> searchs(String text) {
            List<PonyTail> list = new ArrayList<PonyTail>();
             for (PonyTail u: ponyList) {  // listUsers= contains all data parsed in asynckTask
                 if(u.getName().startsWith(text))//get name.
                 {
                     list.add(u);
                 }
               }
            return list;
        }

  in doInBackground:
this what I parse and dsiplay in gridview.
    private void parseResult(String result) {
        try {
            JSONObject jsono = new JSONObject(result);
            JSONArray jarray = jsono.getJSONArray(Constants.HAIRSTYLE);
            for (int i = 0; i < jarray.length(); i++) {
                JSONObject object = jarray.getJSONObject(i);
                PonyTail ponyTail = new PonyTail();
                ponyTail.setName(object.getString(Constants.NAME));
                ponyTail.setImage(object.getString(Constants.IMAGE));
                ponyTail.setDescription(object
                        .getString(Constants.DESCRIPTION));
                ponyList.add(ponyTail);

            }

        } catch (Exception e) {
            e.printStackTrace();
        }
List-ponyList=new-ArrayList();
专用马尾辫适配器;
私有字符串数据路径;
私人编辑文本搜索;
search=(EditText)rootView.findviewbyd(R.id.hairstyle\u name);
search.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列、int start、int before、int count){
String text=search.getText().toString();
列表=搜索(文本);
}
//这不起作用:-(
私有列表搜索(字符串文本){
列表=新的ArrayList();
for(PonyTail u:ponyList){//listUsers=包含在异步任务中解析的所有数据
if(u.getName().startsWith(text))//获取名称。
{
增加(u);
}
}
退货清单;
}
在doInBackground:
这就是我在gridview中解析和显示的内容。
私有void parseResult(字符串结果){
试一试{
JSONObject jsono=新的JSONObject(结果);
JSONArray jarray=jsono.getJSONArray(Constants.HAIRSTYLE);
for(int i=0;i
我看不到你在适配器的任何地方调用
notifyDatasetChanged
。你似乎还暗示你正试图从后台线程更新UI。这是一个非常大的问题。我看不到你在适配器的任何地方调用
notifyDatasetChanged
。你似乎还暗示你正试图从后台线程更新UI圆线。这是一个很大的问题