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

Reply via email to