swipelistview setOnClickListener dismiss

时间:2014-11-17 11:58:06

标签: android swipe

我正在使用47deg / android-swipelistview,我完全使用模式SWIPE_ACTION_DISMISS。

但是在另一个活动中我需要使用带有删除按钮的SWIPE_ACTION_REVEAL。 所以要删除一个元素,在适配器中我这样做:

public View getView(int position,View convertView,ViewGroup parent){

    final int pos = position;
    final View conv = convertView;
    final ViewGroup par = parent;
    //View v = convertView;
    ViewHolder holder;
    if (convertView == null) {

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.afficheitem_swipecontact, parent, false);

        holder = new ViewHolder();


        holder.bloquer = (Button) convertView.findViewById(R.id.bloquer);


        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    ((SwipeListView)parent).recycle(convertView, position);
    // Get item

    BeanMembre membre = (BeanMembre) getItem(position);

    holder.membreName.setText(membre.getPseudo());





    holder.bloquer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(context, R.string.bloquer, Toast.LENGTH_SHORT).show();

            listMembre.remove(pos);
            notifyDataSetChanged();
        }
    });




    return convertView;

当我这样做时,元素被删除但列表的项目不刷新。我必须向下滚动才能看到新元素。 我没有在网上,在堆栈或样本中找到这样做的方法。

你有alerady这样做吗?你有样品吗?我是否需要从适配器调用dismiss方法来生成dismiss动画?

谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了。请参阅下面的解决方案

holder.supprimer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    Toast.makeText(context, R.string.supprimer, Toast.LENGTH_SHORT).show();
    //we can call dismmiss method like this.
    ((SwipeListView)par).dismiss(pos,true);
    }
});