Удаление дубликатов из ListView Android - PullRequest
1 голос
/ 03 октября 2011

Я отправляю свой код, я не могу удалить повторяющиеся значения из списка? Может кто-нибудь, пожалуйста, помогите мне? Заранее спасибо! Я вставляю свой код здесь, и я использовал BaseAdapter.


@Override
            public void onCompleted(final List<Recommendable> result) {
                android.util.Log.w("suggestionview>>>>>", "suggestion"+ result.size());
                ((Activity) mContext).runOnUiThread(new Runnable() {
                    public void run() {
                        Iterator<Recommendable> itr = result.iterator();
                        while (itr.hasNext()) {
                            Recommendable element = itr.next();
                            suggestions.add(element);
                            android.util.Log.w("suggestionview", "Adding elements::>"+suggestions.add(element));
                        }
                        suggestionListView.setAdapter(new Suggestiondapter(mContext));
                        android.util.Log.w("suggestionview","suggestion adapter Values::>"+suggestionListView);
                    }
                });

И второй код

public class Suggestiondapter extends BaseAdapter {


    // private LayoutInflater mInflater = null;
    private Context mContext;

    public Suggestiondapter(Context mContext) {
        this.mContext=mContext;
        android.util.Log.w("Suggestion Adapter","vlues are comming.....");
    }

    @Override
    public int getCount() {
        android.util.Log.w("suugestion adapter","suggstion size::>"+suggestions.size());
        return suggestions.size();
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Recommendable recommendable = suggestions.get(position);
        if(convertView==null){
            android.util.Log.w("convertView", "adaptervalues........::>"+ recommendable.Program);
            android.util.Log.w("series conveter", "program series values::>"+recommendable.Series);
            convertView = new HeaderView(mContext, recommendable.Program,recommendable.Series, SuggestionView.class);
        }else{
            Toast.makeText(mContext, "HelloView", Toast.LENGTH_SHORT);
        }
        return convertView;
    }
};

Ответы [ 2 ]

12 голосов
/ 03 октября 2011

Если вы не хотите разрешать дублирование в коллекции вашего объекта, тогда используйте объект Set, теперь он допустит дублирование значения.

Set suggestion = new HashSet();

или вы можете добавить свой объект списка к этому объекту.Теперь добавим дублирующее значение

ArrayList al = new ArrayList();
// add elements to al, including duplicates
HashSet hs = new HashSet();
hs.addAll(al);
al.clear();
al.addAll(hs);

, обновленное для вашего случая:

используйте ваш предложение объект вместо вышеупомянутого al объекта просто так.

0 голосов
/ 02 апреля 2014

Вы можете использовать этот код:

    private static HashSet<String> hs = new HashSet<String>();
    private static ArrayList<String> list= new ArrayList<String>();

    for(int i=0; i<list.size(); i++){
        hs.add(list.get(i));

    }

    list.clear();
    list.addAll(hs);
...