2 yongyong 21 yongyong_21 于 2012.09.11 16:19 提问

如何获得listview中的按钮?

在如下程序中,我使用一个List Activity。 执行ArrayAdapter中的getView()方法。

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    mPosition= position;
    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.imagelistlayout, null, true);
    deleteButton= (Button)rowView.findViewById(R.id.delete_bn);
    deleteButton.setTag(position);
    TextView textView = (TextView) rowView.findViewById(R.id.label);
    textView.setText(names[position]);


    return rowView;

} 

现在我想在deleteButton上设置 onclicklistener()事件。当点击删除键时,相应的内容就会被删除。如何实现?谢谢大家的帮忙

4个回答

curie_87
curie_87   2012.09.11 17:31
已采纳

我是这么解决这个问题的,这是最近在程序中用的一个代码片段:

((Button) l.findViewById(R.id.btn_rm)).setOnClickListener(new OnClickListener(){
public void onClick(View v) { 

    list_of_elements.remove(position);      
    My_Custom_List_Adapter.this.notifyDataSetChanged(); 
}                   
});

please note that this has been developed within an expandable list adapter, so it may differ slightly from a regular listadapter
这是在一个可扩展的列表适配器中使用的代码,可能与一般的列表稍微有些不同。

myc_100
myc_100   2012.09.11 16:48

给getView()里按钮直接添加OnClickListener事件,如下:

 @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
      mPosition= position;
      LayoutInflater inflater = context.getLayoutInflater();
      View rowView = inflater.inflate(R.layout.imagelistlayout, null, true);
      deleteButton= (Button)rowView.findViewById(R.id.delete_bn);
      deleteButton.setOnClickListener( new OnClickListener() {
        public void onClick( View v ) {
          //Handle deleting the item here.
          //If you need the layout holding the button, you can probably get it by using v.getParent()
        }
      });
      TextView textView = (TextView) rowView.findViewById(R.id.label);
      textView.setText(names[position]);

      return rowView;
    }
qazwsx132656526
qazwsx132656526   2015.08.31 20:03

给getView()里按钮直接添加OnClickListener事件

u1254z62
u1254z62   2017.01.03 18:15

给getView()里按钮直接添加OnClickListener事件

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android在ListView中获得对应行的button点击事件
//加在getview当中 viewHolder.accept.setTag(position); viewHolder.accept.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 id=basel
ListView的Item中的按钮点击事件
转载:http://www.cnblogs.com/ivan-xu/p/4124967.html 最近交流群里面有人问到一个问题:如何在Activity中响应ListView内部按钮的点击事件,不要在Adapter中响应? 对于这个问题,我最初给他的解答是,在Adapter中定义一个回调接口,在Activity中实现该接口,从而实现对点击事件的响应。 下班后思考了一下,觉得有两种
怎样解决ListView条目中的Button事件
ListView条目中的button事件的监听以及子控件与父控件的事件冲突处理1.事件冲突处理listview的条目中当子项包括Button或者CheckBoX等控件时,点击条目无效。这里是因为Button或者CheckBoX将条目上的焦点抢走了。 解决方法:在listview条目的 根布局 中加 上android:descendantFocusability="blocksDescendant
Android--listView中的button控件获取item的值
在listview中的listitem设置事件响应,如果listitem中有button控件,这时候listitem就不会捕获到点击事件,而默认的是listitem中的button会捕获点击事件,这方面的介绍网上很多,我想大家应该很熟悉了,之前做项目开发的时候遇到了一个问题,就是如果我点击listitem中的button怎么才能这个button是在哪一个item中呢,换句话说,就是点击listit
在ListView中多个item里面的按钮,获取不到当前item的位置
在做这个项目的时候,碰到了这样的问题,在给ListView中的Button增加点击事件的时候,修改的东西总是多条数据的最后一条,也就是说,无论点击哪一行的Button,触发的事件总是最后一行,在网上搜了一下,大致知道怎么解决这个问题。 1.首先在定义控件的时候,设置一个Tag标记,将getView(int position, View convertView, ViewGroup parent)
Listview中的Button实现点击事件
QQ空间的说说评论和点赞其实就是相当于两个按钮。一般实现这两个按钮的点击事件归结为一种思想---接口回调。具体实现的话有两种方法,一中是通过实现接口方法,一中是通过实 现抽象方法
android listview中按钮点击怎样获取到那条选中listItem的position
你的按钮是在 public View getView(final int position, View convertView, ViewGroup parent) 中构建的吗?  position设置为final  直接在点击事件里用这个position 就可以 直接把上面的position传进去就可以。
在ListView中添加Button并且自定义布局和获取输入框中值的方法
代码: package com.example.comment; import android.os.Bundle; import android.util.Log; import java.util.ArrayList; import java.util.List; import android.app.ActionBar; import android.a
ListView中item与其中的组件(按钮)的焦点获取冲突问题
本人初学在学习安卓时,遇到过这么一问题。在一个ListView 中,每一个子Item中存在Button(类似的其他自动获取焦点的组件)时,ListView的OnItemClickListener和OnItemLongClickListener将变得不可用,而Button却可以使用。从网上查了很多,大家都说是焦点问题,应对这种情况一般有两种方法:       1.设置android:descend
解决ListView中Item的子控件(比如Button)与Item点击事件冲突
经常会碰到在ListView中点击其中一个Item,会一并触发其子控件的点击事件,例如Item中的Button、ImageButton等,导致了点击Item中Button以外区域也会触发Button点击事件。在网上找了相关方法,这里记录下,亲测可行.. 1、在Item的xml文件根元素中添加属性:android:descendantFocusability="blocksDescendants"