Пользовательский ArrayAdapter onLongClickListener - PullRequest
1 голос
/ 02 февраля 2012

Эй, ребята, у меня есть следующая проблема, я сделал ListView с Custom ArrayAdapter для него. Теперь я хочу определить onLongClickListener внутри ArrayAdapter, но каждый раз получаю неправильный предмет. Каждый раз, когда я получаю элемент, который был удален, поэтому, если у меня есть строковый массив со значениями: один, два, три, четыре, пять, шесть и т. Д., И я вижу 4 ListView элементов (первые 4), я получаю значение : пять

Кто-нибудь знает, как решить эту проблему?

   public View getView(int position, View rowView, ViewGroup parent) {
            this.position=position;
            rowView = inflater.inflate(R.layout.task_item, null, true);
            holder = new ViewHolder();
            holder.text = (TextView) rowView.findViewById(R.id.task_item);
            holder.img=(ImageView) rowView.findViewById(R.id.task_item_rating);
            holder.text.setText(objects[position].toString());
            holder.text.setGravity(Gravity.CENTER_HORIZONTAL);
            holder.text.setPadding(0, 20, 0, 20);
            rowView.setTag(holder);
            rowView.setOnLongClickListener(myLong);
            return rowView;
    }


    public OnLongClickListener myLong = new OnLongClickListener() {
        public boolean onLongClick(View v) {
            //do something
        }
    }

1 Ответ

1 голос
/ 24 октября 2012

- я думаю, что вы должны использовать arrayadapter.notifyDataSetChanged (); после удаления элемента с -arrayadapter.remove (индекс); // это адаптер, который вы привязываете к списку -использовать в listView.setOnItemLongClickListener (). вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...