Android 如何在可扩展列表的子级中获取文本视图的clicklistener?
我目前正在Expandablelist中为子级使用自定义布局,其中包括2个不同的文本视图和一个imageview。而且每次都会有一个孩子。我可以在适配器中获取clicklistener,但无法在活动中获取它 我还尝试在onChildClick()方法中获取click listener事件,但它不起作用 我在不同的活动中使用此适配器,因此我希望在活动本身中有一个文本视图的单击侦听器Android 如何在可扩展列表的子级中获取文本视图的clicklistener?,android,expandablelistview,onclicklistener,Android,Expandablelistview,Onclicklistener,我目前正在Expandablelist中为子级使用自定义布局,其中包括2个不同的文本视图和一个imageview。而且每次都会有一个孩子。我可以在适配器中获取clicklistener,但无法在活动中获取它 我还尝试在onChildClick()方法中获取click listener事件,但它不起作用 我在不同的活动中使用此适配器,因此我希望在活动本身中有一个文本视图的单击侦听器 请提供任何建议。如果我理解您的意图,您无法通过活动将侦听器设置在视图上。一种方法是: 使适配器具有实例化适配器时设
请提供任何建议。如果我理解您的意图,您无法通过
活动将侦听器设置在视图上。一种方法是:
- 使适配器具有实例化适配器时设置的
布尔值(这将告诉您适配器是否属于活动
,其中文本视图
应具有侦听器(例如,对于真
)。如果该值为false
,则确保不要在TextView
上设置侦听器
- 在自定义适配器的
getChildView
方法中,在所需的TextView
上设置侦听器(仅当上一个值为true
时,对于其他活动,您只需忽略此部分)
- 在该视图的
OnCLickListener
的onClick
方法中,使用传入自定义适配器构造函数的Context
。将其转换为所需的活动,并根据需要使用它。一种更优雅的方法是让所需的活动
实现一个自定义界面(在单击文本视图
时通知您)。然后在适配器中创建一个带有该接口类型的字段,您将在实例化侦听器时将该字段设置为指向您的活动。单击TextView
时,调用上面该字段的方法,并通知活动发生了一些事情,它应该做一些事情
如果我理解您的意图,则无法通过活动将侦听器设置在视图上。一种方法是:
- 使适配器具有实例化适配器时设置的
布尔值(这将告诉您适配器是否属于活动
,其中文本视图
应具有侦听器(例如,对于真
)。如果该值为false
,则确保不要在TextView
上设置侦听器
- 在自定义适配器的
getChildView
方法中,在所需的TextView
上设置侦听器(仅当上一个值为true
时,对于其他活动,您只需忽略此部分)
- 在该视图的
OnCLickListener
的onClick
方法中,使用传入自定义适配器构造函数的Context
。将其转换为所需的活动,并根据需要使用它。一种更优雅的方法是让所需的活动
实现一个自定义界面(在单击文本视图
时通知您)。然后在适配器中创建一个带有该接口类型的字段,您将在实例化侦听器时将该字段设置为指向您的活动。单击TextView
时,调用上面该字段的方法,并通知活动发生了一些事情,它应该做一些事情
我能够做到这一点,伙计们,我在布局文件中添加了android:onClick=“textClickHandler”>
,并在我的活动中包括了侦听器,如下所示:
public void textClickHandler(View view){
if(view.getId() == R.id.textMore){
Toast.makeText(mContext, "More Text Clicked.", Toast.LENGTH_LONG).show();
}
}
我能够做到这一点,伙计们,我在布局文件中添加了android:onClick=“textClickHandler”>
,并在我的活动中包括了侦听器,如下所示:
public void textClickHandler(View view){
if(view.getId() == R.id.textMore){
Toast.makeText(mContext, "More Text Clicked.", Toast.LENGTH_LONG).show();
}
}
只有当您不关心单击了ExpandableListView
中的TextView
时(从位置0处的子项,从位置7处的子项等),这才有效。@Luksprog-是的,这是我想要的,正如我在问题陈述中提到的,我在列表中只有一个子项。谢谢你指出这一点。稍后,我也将尝试您的解决方案,用于儿童列表。只有当您不关心从ExpandableListView
中单击了什么TextView
时(从位置0的儿童,从位置7的儿童等)。@Luksprog-是的,这是我想要的,正如我的问题陈述中所述,我在列表中只有一个儿童。谢谢你指出这一点。我也会在以后的某个时候为孩子列表尝试你的解决方案。