public class ActivityForShow extends Activity
{
//have a ListView layout
ListView.setAdapter(SingleRowAdapter);
}
public class SingleRowAdapter extends ArrayAdapter
{
//every row has a CheckBox ,a TextView and a Button
}
现在我想处理CheckBox和Button事件,做一些后台工作并在对话框中显示结果 但是如何在ActivityForShow中获取Checkbox和Button的确认? findViewById()将导致异常。
答案 0 :(得分:0)
我认为你不想在ActivityForShow类中这样做。相反,在SingleRowAdapter#getItem(int)方法中注册所有事件处理程序(您必须覆盖它)。在该方法中,您可以为给定行创建视图,因此您可以知道行是什么(位置),并且可以为CheckBox,Button等注册事件处理程序
答案 1 :(得分:0)
很明显它给了finviewbyid方法错误bcoz它被用于xml元素引用时你可以使用这个链接进行研究:http://developer.android.com/reference/android/widget/ArrayAdapter.html
答案 2 :(得分:0)
听起来您想要处理onCheckedChanged
中的onClick
事件或ActivityForShow
事件。
如果有,请ActivityForShow
创建一个OnCheckedChangeListener
实例和OnClickListener
实例(例如,作为本地匿名内部类)并让ActivityForShow
将它们提供给SingleRowAdapter
(例如,作为构造函数参数)附加到复选框和按钮小部件作为其回调。
或者,在单击按钮或选中复选框时,定义要调用的自定义处理程序接口。让ActivityForShow
使用代码来实例化自定义接口的实例以处理事件。请ActivityForShow
将其提交给SingleRowAdapter
。最后,让SingleRowAdapter
创建事件处理程序以附加到复选框和按钮 - 这些事件处理程序只需调用您自己的自定义处理程序。
答案 3 :(得分:0)
希望以下链接可以为您提供帮助,event on an item of ListView custom row layout。