自定义ListView上的事件句柄

时间:2011-01-22 03:15:00

标签: android listview

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()将导致异常。

4 个答案:

答案 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