gon*_*ins 14 android listview arraylist
我有一个ArrayList中的项集合.我将它们添加到客户适配器,如下所示:
this.m_adapter = new MyAdapter(this, R.layout.myitem,
    itemCart.m_items);
Run Code Online (Sandbox Code Playgroud)
我的列表中的每个项目都有一个删除按钮,但我不知道如何将删除按钮onClick()与ArrayList中的原始项目连接.有人可以解释如何做到这一点或指向我的教程,我可以阅读这个?非讽刺/非居高临下的回应非常感谢.
jcu*_*nod 26
你可以调用你的remove()方法ArrayList
itemCart.m_items.remove(<index of element to remove>);
this.m_adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
然后你需要调用notifyDataSetChanged();你的适配器来更新ListView
到目前为止,这是我的解决方案:
在getView()方法中我做这样的事情:
deleteButton.setTag(position);
Run Code Online (Sandbox Code Playgroud)
它看起来像getTag()返回一个Object.所以我首先将位置int转换为Integer对象.它似乎有效.  
在OnClickListener()我做以下事项:
items.remove(index.intValue());
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.
小智 7
您可以通过简单地注意到列表视图是子视图的集合(列表的行)来获取元素的索引.
您可以在代码中执行以下操作:
(例如,在getView()方法内部)
row.setOnLongClickListener(new OnLongClickListener() 
{
    @Override
    public boolean onLongClick(View view) {
        remove(listView.indexOfChild(view));
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)
也就是说,解决方案只是使用indexOfChild(View)方法来获取用户(长)按下的子视图的索引.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           69251 次  |  
        
|   最近记录:  |