Hello, okay? My question is that I can not do a search on my facebook friends in my listview using a basedapter ... My doubt is that the same topic But no solution yet!
Follow my code below /* * callback after friends are fetched via me/friends. * Chamada dos amigos atraves do me/friends */ public class FriendsRequestListener extends BaseRequestListener { @Override public void onComplete(final String response, final Object state) { dialog.dismiss(); try{ arrayName = new ArrayList<String>(); jsonArray = new JSONObject(response).getJSONArray("data"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject json_data = jsonArray.getJSONObject(i); if(json_data.has("name")){ String getFriendName = json_data.getString("name"); arrayName.add(getFriendName); }else{ String getFriendName = null; arrayName.add(getFriendName); } } }catch(JSONException e){ Log.d(TAG, e.getMessage()); return; } stringName = new String[arrayName.size()]; stringName = arrayName.toArray(stringName); EscolhaAmigosFacebook.this.runOnUiThread(new Runnable() { @Override public void run() { adapter = new FriendListAdapter(EscolhaAmigosFacebook.this, stringName, arrayName); friendsListView.setTextFilterEnabled(true); friendsListView.setAdapter(adapter); } }); } /** * Definition of the list adapter */ public class FriendListAdapter extends BaseAdapter implementsFilterable { String[] fetFriendName; List<String> arrayList; List<String> mOriginalValues; LayoutInflater mInflater = null; EscolhaAmigosFacebook friendsList; FriendListAdapter(EscolhaAmigosFacebook friendsList, String[] stringName, ArrayList<String> arrayName) { this.friendsList = friendsList; if (Utility.model == null) { Utility.model = new FriendsGetProfilePics(); } Utility.model.setListener(this); fetFriendName = stringName; arrayList = new ArrayList<String>(); mOriginalValues = arrayName; mInflater = LayoutInflater.from(friendsList.getBaseContext()); } @Override public int getCount() { return mOriginalValues.size(); } @Override public Object getItem(int position) { return mOriginalValues.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { JSONObject jsonObject = null; final ViewHolder holder; View vi = convertView; try { jsonObject = jsonArray.getJSONObject(position); } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if (vi == null) { vi = mInflater.inflate(R.layout.friend_item, null); holder = new ViewHolder(); holder.profile_pic = (ImageView) vi.findViewById(R.id. profile_pic); TextView txtFriendsName = (TextView)vi.findViewById(R.id. name); txtFriendsName.setText(fetFriendName[position]); vi.setTag(holder); }else{ holder = (ViewHolder) vi.getTag(); } try { holder.profile_pic.setImageBitmap(Utility.model.getImage( jsonObject.getString("id"), jsonObject.getString("picture" ))); } catch (JSONException e) { holder.name.setText(""); } return vi; } @Override public Filter getFilter() { Filter filter = new Filter(){ @SuppressWarnings("unchecked") @Override protected void publishResults(CharSequence constraint, FilterResults results) { arrayList = (List<String>) results.values; notifyDataSetChanged(); } @Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); List<String> FilteredArrList = new ArrayList<String>(); if (constraint == null || constraint.length() == 0) { results.count = mOriginalValues.size(); results.values = mOriginalValues; } else { constraint = constraint.toString(); for (int i = 0; i < mOriginalValues.size(); i++) { String data = mOriginalValues.get(i); if(data.toLowerCase().startsWith(constraint.toString())) { FilteredArrList.add(data); } } results.count = FilteredArrList.size(); results.values = FilteredArrList; } return results; } }; return filter; } } private TextWatcher filterTextWatcher = new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, intcount) { adapter.getFilter().filter(s.toString()); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } }; I can not find the solution, just when I type something in my textview, nothing happens in the listview, not filter type ... If anyone also know what I do to see where the error might be, please .. If anyone can help me! -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en