首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除行列表视图android

删除行列表视图android
EN

Stack Overflow用户
提问于 2014-01-21 07:22:51
回答 3查看 141关注 0票数 0

我试图使用自定义列表视图在每一行中使用delete图像按钮来创建一个包含标题、描述和其他数据的列表。

当我单击第10行中的ImageButton时,ListView中的第5行将被删除!

我的适配器:

代码语言:javascript
复制
public  static class ViewHolder {
    TextView favorites_title;
    TextView favorites_description;
    TextView favorites_date;
    ImageButton favorites_btn_delete ;
}

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

    ViewHolder holder;
    if(convertView==null){
        /****** Inflate tabitem.xml file for each row ( Defined below ) *******/
        convertView = inflater.inflate(R.layout.favorites_list_row_layout, null);

        /****** View Holder Object to contain tabitem.xml file elements ******/

        holder = new ViewHolder();
        holder.favorites_title = (TextView) convertView.findViewById(R.id.favorites_title);
        holder.favorites_description = (TextView) convertView.findViewById(R.id.favorites_description);
        holder.favorites_date = (TextView) convertView.findViewById(R.id.favorites_date);
        holder.favorites_btn_delete = (ImageButton)convertView.findViewById(R.id.favorites_btn_delete); 
       /************  Set holder with LayoutInflater ************/
        convertView.setTag( holder );
        holder.favorites_btn_delete.setTag(position);
    }
    else 
        holder=(ViewHolder)convertView.getTag();
    holder.favorites_btn_delete.getTag();
    NewsItem newsItem = (NewsItem) listData.get(position);

    holder.favorites_title.setText(newsItem.getHeadline());
    holder.favorites_description.setText(newsItem.getDescription());
    holder.favorites_date.setText(newsItem.getDate());
    holder.favorites_btn_delete.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Integer index = (Integer) v.getTag();
            int i = index.intValue();
            Log.e("Position",  String.valueOf(i));
        //  listData.remove(i);
        //  notifyDataSetChanged();

        }
    });
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-21 07:26:12

holder.favorites_btn_delete.setTag(position);移到if else之外,否则在Button中新的position值将永远不会设置为标记,当convertView不是null时,旧值将保持为标记。

票数 1
EN

Stack Overflow用户

发布于 2014-01-21 07:34:17

holder.favorites_btn_delete.setOnClickListener(this);

在getview方法之外

代码语言:javascript
复制
public void onClick(View v)
    {
  // TODO Auto-generated method stub
            Integer index = (Integer) v.getTag();
            int i = index.intValue();
            Log.e("Position",  String.valueOf(i));
          listData.remove(i);
        notifyDataSetChanged();

}
票数 0
EN

Stack Overflow用户

发布于 2014-01-21 08:32:12

使用这个code..it会帮你..。

应用onItem单击“图像侦听器”按钮

代码语言:javascript
复制
@Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
         listData.remove(positon);
        notifyDataSetChanged();
    }

把这个应用到你的活动中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21251710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档