如何在子项中为可扩展列表获取textview的单击侦听器?

时间:2012-05-28 03:43:41

标签: android expandablelistview onclicklistener

我目前正在使用Expandablelist中的子项的自定义布局,其中包括2个不同的文本视图和一个imageview。此外,每次都会有1个孩子。我能够在适配器中获取clicklistener但无法在活动中获取此信息。

我还尝试在onChildClick()方法中获取click侦听器事件,但它无法正常工作。

我在不同的活动中使用这个适配器,所以我希望在活动本身中有一个文本视图的点击监听器。

请提出任何建议。

2 个答案:

答案 0 :(得分:2)

我能够完成这些工作,我在布局文件中添加了android:onClick="textClickHandler">并在我的活动中包含了如下的监听器:

public void textClickHandler(View view){

        if(view.getId() == R.id.textMore){
            Toast.makeText(mContext, "More Text Clicked.", Toast.LENGTH_LONG).show();
        }
    }

答案 1 :(得分:1)

您无法在View Activity上设置监听器(如果我理解您要做的事情)。一种方法是:

  • 使您的适配器具有您在实例化适配器时设置的boolean值(这将告诉您适配器是否属于Activity TextView应该有一个监听器({1}}对于true,例如)。如果值为false,那么您将确保不在TextView上设置侦听器。
  • 在您自定义的TextView方法中,将侦听器设置为所需的true(仅当前一个值为getChildView时,对于您将简单忽略此部分的其他活动)适配器。
  • 该视图onClick的{​​{1}}方法中的
  • 使用您在自定义适配器的构造函数中传递的OnCLickListener。将其转换为所需的活动并根据需要使用它。更优雅的方法是让所需的Context实现自定义界面(在单击Activity时通知您)。然后在适配器中创建一个字段,该字段具有您在实例化侦听器时将设置为指向TextView的接口类型。单击Activity时,请调用上面该字段的方法,并通知TextView发生了某些事情,并且应该做一些事情。