listview-点击按钮从 ListView中 删除一行

问题描述

点击按钮从 ListView中 删除一行

程序中的 ListView 的行包含一些 textviews 和一个按钮。当用户点击按钮时,我想删除父类
并把按钮从 ListView中 删除。如何在一个嵌套的方法(onClickListener)中访问自定义的 ArrayAdapter 的字段?我使用的是 View v。我是否要多次调用 v.getParent(),或者还有什么更好的方法?

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
     ViewHolder holder = null;
     Action item = this.getItem(position);
     if (convertView == null) {
        convertView = inflater.inflate(R.layout.action_holder_layout,
              parent, false);
        holder = new ViewHolder();
        holder.title = (TextView) convertView
              .findViewById(R.id.action_holder_title);
        holder.finishBtn = (Button) convertView
              .findViewById(R.id.finish_action_button);
        convertView.setTag(holder);
     } else
        holder = (ViewHolder) convertView.getTag();
     holder.title.setText(item.getActionName());
     holder.finishBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
           //REMOVE THE ACTION FROM THE ADAPTER'S ARRAYLIST
        }
     });
     return convertView;
  }

  static class ViewHolder {

     private TextView title;
     private Button finishBtn;
  }

解决方案

@Override
public int getCount(){
     return null!=list?list.size():0;
}

@Override
  public View getView(int position, View convertView, ViewGroup parent) {
     ViewHolder holder = null;
     Action item = this.getItem(position);
     if (convertView == null) {
        convertView = inflater.inflate(R.layout.action_holder_layout,
              parent, false);
        holder = new ViewHolder();
        holder.title = (TextView) convertView
              .findViewById(R.id.action_holder_title);
        holder.finishBtn = (Button) convertView
              .findViewById(R.id.finish_action_button);
        convertView.setTag(holder);
     } else
        holder = (ViewHolder) convertView.getTag();
     holder.title.setText(item.getActionName());
     holder.finishBtn.setTag(position);
     holder.finishBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
           //REMOVE THE ACTION FROM THE ADAPTER'S ARRAYLIST
           Object tag = v.getTag();
           if(null!=tag){
               list.remove((Integer)tag);
               notifyDataSetChanged();
           }
        }
     });
     return convertView;
  }

  static class ViewHolder {

     private TextView title;
     private Button finishBtn;
  }

解决方案二:

@Override
  public View getView(final int position, View convertView, ViewGroup parent) {
     ...
     holder.finishBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
           remove(position);
        }
     });
    ...
  }

  public void remove(int index) {
    // list.remove(index);
    ...
    notifyDataSetChanged();
  }
时间: 2024-12-05 16:47:52

listview-点击按钮从 ListView中 删除一行的相关文章

access-如何在Access中删除一行数据,怎么出错?? String sql="DELETE FROM T

问题描述 如何在Access中删除一行数据,怎么出错?? String sql="DELETE FROM T Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn= DriverManager.getConnection("jdbc:odbc:DDEmployer"); Statement stat=conn.createStatement(); String id=javax.swi

怎么点击按钮往gridview中添加多行数据

问题描述 List<Student>list=newList<Student>();privatevoidbutton1_Click(objectsender,EventArgse){Studenta=newStudent();a.姓名=textBox1.Text;a.年龄=int.Parse(textBox2.Text);a.成绩=int.Parse(textBox3.Text);a.学号=textBox4.Text;list.Add(a);dataGridView1.DataS

Android编程实现Listview点击展开和隐藏的方法_Android

本文实例讲述了Android编程实现Listview点击展开和隐藏的方法.分享给大家供大家参考,具体如下: 代码较多,所以找关键点大家贴出来,相信大家看了之后很容易就明白的, 在listview的activity中 List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>() myAdapter = new MyAdapter(getApplicationContext(

Android关于listview点击item中某一个按钮把这个item置顶的问题

问题描述 Android关于listview点击item中某一个按钮把这个item置顶的问题 大神告知我如何点击listview中item的某一个按钮·把相应的item进行置顶呢?或者说不用listview用动态加载如何实现呢? 解决方案 置顶,其实就是把你点击的这个item放到数据源列表的第一项,然后notify一下 解决方案二: 比如你的listview对应的数据列表为items,在getview时,可以在每个试图中保留位置postion,当点击时,取出postion,然后取出items中p

在C#中实现对ListView点击列标题自动排序功能

先定义一个ListViewHelper类,代码如下: using System; using System.Collections; using System.Windows.Forms; namespace Common { /// <summary> /// 对ListView点击列标题自动排序功能 /// </summary> public class ListViewHelper { /// <summary> /// 构造函数 /// </summary

Android中Listview点击item不变颜色及设置listselector 无效的解决方案_Android

这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listselector,有一个默认的颜色,同理如果点击没颜色变化我们怎么设置listselector也不会变颜色的. 但是在我们的开发过程中,我们可能会碰到这样的问题listview点击不变颜色,总结了一下大概有这几种原因: 1.item的layout设置background颜色值,去掉背景颜色即可 2.listview中listselector属性的效果被覆盖了,比如列表的Item为一个占满单元格的I

Android ListView实现仿iPhone实现左滑删除按钮的简单实例

需要自定义ListView.这里就交FloatDelListView吧. 复写onTouchEvent方法.如下: @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN:<BR> // 获取按下的条目视图(child view) int childCount = getChildCount(); int[] listViewCo

91-jsp中,点击文本框后面显示删除按钮,点击其他文本框时删除按钮消失

问题描述 jsp中,点击文本框后面显示删除按钮,点击其他文本框时删除按钮消失 解决方案 好吧,楼主自己已经搞定了,本帖结束 解决方案二: 解决方案三: 解决方案四: 如第2张图所示,点击radio后的text按钮时(这里value初始值为男/女),在文本框后显示一个 删除按钮,点击删除按钮可以把整行都删除,这个已经实现. 当你点击下一个文本框时,上一个文本框的删除图标会消失/删除.你所点击的文本框后面会显示删除按钮(男的后面已经没有了,女的后面显示删除按钮) 当你再次点击男所在的文本框时,女的删

database-点击按钮删除数据库中的行

问题描述 点击按钮删除数据库中的行 我做一个应用程序:当重启 activity,点击一个按钮时需要把插入表中的行删除.我试了下面的方法,但是不能得到预期的效果,相同的行再次插入.如何解决这个问题呢? public void deleteDatabase(String databaseName) { context.deleteDatabase(databaseName); } 和 public void deleteAll(){ db.execSQL(""TRUNCATE TABLE&