如何在android中使用json响应的搜索功能?
您好,我正在使用json响应,在gridview中显示图像和文本。它已成功显示。我需要使用edittext在gridview顶部使用搜索。但当我输入时,搜索不起作用 这是我的密码如何在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
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圆线。这是一个很大的问题