2012-07-06 82 views
2

我是新来的android,并试图开发一个新的android应用程序。但我正在努力解决我项目中的一个问题。在Listview的每一行中处理按钮事件问题

我使用的是从baseadapter扩展的列表视图,需要在列表视图的每一行中添加一个按钮。当我在列表视图的任何一行点击button时,我希望它被删除。但是当我这样做时,其他一些按钮也会在列表视图中被删除。

我该如何解决这个问题?谢谢..

+2

请发表您如何删除按钮的代码。 – 2012-07-06 13:42:50

+0

真的,如果您发布代码,您会如何获得帮助? – Zamani 2012-07-06 13:44:44

+0

如果您有时间,我认为值得关注 - [Google I/O 2010 - ListView的世界](http://www.youtube.com/watch?v=wDBM6wVEO70)。 – 2012-07-06 14:11:54

回答

1

你有一个适配器,活动和某种数据源的

在您的适配器中,您将一些数据附加到按钮能够一一区别:

public class ExpAdapter extends ListAdapter { 

    @Override 
    public View getView(int groupPosition, boolean isExpanded, 
      View convertView, ViewGroup parent) { 
       /* SOME CODE HERE*/ 
     convertViewButton.setTag(buttonId); 
     return convertView; 
    } 
       /* SOME CODE HERE*/ 
} 

在您的活动您标记按钮ID作为一个被隐藏:

 public boolean onItemLongClick(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      storageOfHiddenButtonsIds.add((Long)arg1.getTag()); 
     }}; 

,然后像这样ListAdapter变化:

@Override 
public View getView(int groupPosition, boolean isExpanded, 
     View convertView, ViewGroup parent) { 
      /* SOME CODE HERE*/ 

    convertViewButton.setTag(buttonId); 

    if(storageOfHiddenButtonsIds.contains(buttonId)) 
    { 
     convertViewButton.setVisiblity(View.GONE); 
    } 
    return convertView; 
} 

当你想让你的adatper改变你的时候,别忘了打电话

this.expAdapterAllTaks.notifyDataSetChanged(); 

对不起,我的代码中有任何错误,但我只是想给你一个想法。

0

我面临同样类型的问题。如果您在每个listView项目中添加像按钮一样的项目,ListView的setOnItemClickListener不起作用。解决方法是在列表项目布局(你在自定义适配器文件中使用)使用onClick作为

<ImageButton 
     android:id="@+id/my_delete" 
     android:onClick="onDeleteButtonClickListener" 
     ... and so on /> 

其中onDeleteButtonClickListener是在设置列表视图中的适配器活性的方法。

public void onDeleteButtonClickListener(View v) { 
// your code 
} 

这里的listItem意味着ListView的各行项目


有用的链接:Button in ListView item

+0

但它接缝我listview的每一行中的所有按钮都有相同的ID。因为当我尝试获得v.getId()时,它会向我返回相同的答案。我真的不知道我将如何处理这件事。你能否更清楚你的解决方案? – Emilla 2012-07-06 14:08:52

+0

试试这个:http://androidforbeginners.blogspot.in/2010/03/clicking-buttons-in-listview-row.html或者你可以在互联网上搜索该类型的主题...它可能会帮助你。 **我通过这个链接解决了** :) – 2012-07-06 14:17:11