安卓开发,listview中的每行有四个checkbox和一个button,通过点击button,对选择的答案进行校正。

已经写了适配器adapter,继承了baseadapter,如何处理button的单击事件呢?是在getview中写吗?可以将button的单击事件抛出到activity... 已经写了适配器adapter,继承了baseadapter,如何处理button的单击事件呢?是在getview中写吗?

可以将button的单击事件抛出到activity中写吗?

ps:我是在getview中进行checkbox的内容初始化的,还是用了viewholder。

谢谢!
展开
 我来答
修怀芹26
2013-03-17 · TA获得超过1208个赞
知道小有建树答主
回答量:695
采纳率:75%
帮助的人:453万
展开全部
1、我一般都不使用内部类的方式,都是在activity中写相关的事件,只需要让activity实现相应的接口就可以了,然后在相应的事件中根据view.getid来确定是从哪个控件进来的;
2、在getview中对每个控件设置它的tag为相应需要处理的数据,这样在相应的事件中可以从传的控件中取到tag再转换为需要的数据类型,就可以处理了。
呼星腾7N
2013-03-17 · TA获得超过1986个赞
知道小有建树答主
回答量:1988
采纳率:0%
帮助的人:1190万
展开全部
给你一个解决思路
Activity直接实现OnItemClickListener,
void onItemClick(AdapterViewparent, View view, int position, long id)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
A里家乡粽
2013-03-16
知道答主
回答量:8
采纳率:0%
帮助的人:10.9万
展开全部
可以在getview中写,也可以把事件抛到activity中处理。

把事件抛到activity中处理的方法是:

自定义一个接口,这个接口可以定义在adapter中也可以单独写成接口类。
然后,在button的点击事件中,调用这个接口的方法,在activity中实现这个接口的方法。
更多追问追答
追问
不好意思,因为是新手,所以不是很明白。我的button是在getView中find的。

什么算把事件抛到activity中去呢? 自定义的接口实现的功能是什么?
追答
你在adapter里定义这样一个接口(一定要是public的):
public interface IButtonClickCallback {

void onAdapterButtonClick(int position);
}
然后同样是在adapter里定义变量:
private IButtonClickCallback callback;

并且写一个该变量的set方法:
public void setIButtonClickCallback(

IButtonClickCallback iButtonClickCallback) {
callback = iButtonClickCallback;
}

然后getView里取得Button的时候,给button设定onClick事件:
button.setOnClickListener(newOnClickListener() {

@Override
publicvoidonClick(View v) {
callback.onAdapterButtonClick(position)

}

});

至于在activity里,首先要实现IButtonClickCallback接口,就是
implements IButtonClickCallback

然后Eclipse会提示你,有没有实现的方法,你把这个方法加上就行,加上之后应该是这样的:
@Override
public void onAdapterButtonClick(int position) {
//在这里写button的操作就可以了
}
这样就把button的事件抛到activity中了。参数position就是getView方法中那个int型的参数,也就是索引。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式