Java 是否有更好的方法为整个布局设置onClickListner?

Java 是否有更好的方法为整个布局设置onClickListner?,java,android,onclicklistener,Java,Android,Onclicklistener,我有一个LinearLayout,我想对用户单击LinearLayout做出响应。所以我写: <LinearLayout Some Attributes onClick="layoutOnClick"> </LinearLayout> 但是,如果单击LinerLayout上的视图,则不会调用layoutOnClick方法。这意味着我需要向LinearLayout中的每个视图添加相同的onClick属性。有更好的方法吗?在布局中设计视图时,布局将完全

我有一个
LinearLayout
,我想对用户单击
LinearLayout
做出响应。所以我写:

<LinearLayout
    Some Attributes
    onClick="layoutOnClick">

</LinearLayout>


但是,如果单击
LinerLayout
上的视图,则不会调用
layoutOnClick
方法。这意味着我需要向
LinearLayout
中的每个视图添加相同的onClick属性。有更好的方法吗?

在布局中设计视图时,布局将完全被视图[按钮/编辑文本等]占据。因此,无法准确单击布局。最好为每个视图或单个视图添加侦听器。否则,如果您能够准确地单击布局,那么显然它应该可以工作。

当您在布局中设计视图时,布局将完全被视图[按钮/编辑文本等]占据。因此,无法准确单击布局。最好为每个视图或单个视图添加侦听器。否则,如果您能够准确地单击布局,那么显然它应该可以工作。

是的,您当然可以将事件侦听器添加到单个LinearLayout元素

为线性布局指定id属性

             <LinearLayout
              android:id="@+id/llSendMoney"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_gravity="center_horizontal">
在onclick事件中

           @Override
public void onClick(View v) 
{
    if(v.getId()== R.id.llSendMoney) {

        //do whatever you want here in the onclick event
        }

    }

我的意思是,如果你不能更准确地点击视图,那么你可能会考虑你的UX的设计改变。或者你可能试图解决一个有更清晰解决方案的问题,比如在线性布局中使用片段。顺便说一下,我很想看看您的布局文件,以便更清楚地了解您的目标。

是的,您当然可以将事件侦听器添加到单个LinearLayout元素中

为线性布局指定id属性

             <LinearLayout
              android:id="@+id/llSendMoney"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_gravity="center_horizontal">
在onclick事件中

           @Override
public void onClick(View v) 
{
    if(v.getId()== R.id.llSendMoney) {

        //do whatever you want here in the onclick event
        }

    }

我的意思是,如果你不能更准确地点击视图,那么你可能会考虑你的UX的设计改变。或者你可能试图解决一个有更清晰解决方案的问题,比如在线性布局中使用片段。顺便说一句,我很想看看您的布局文件,以便更清楚地了解您的目标。

可点击的
属性添加到您的
线性布局
,并将其设置为
true

编辑:

如果这不起作用,答案会更复杂。您可以创建一个自定义的
视图组
,该视图组扩展了
线性布局
,并覆盖
onInterceptTouchEvent()
onTouchEvent()
。在
onInterceptTouchEvent()
中返回
true
,并将单击逻辑添加到
onTouchEvent()


文档更详细。

可点击的
属性添加到
线性布局中
,并将其设置为

编辑:

如果这不起作用,答案会更复杂。您可以创建一个自定义的
视图组
,该视图组扩展了
线性布局
,并覆盖
onInterceptTouchEvent()
onTouchEvent()
。在
onInterceptTouchEvent()
中返回
true
,并将单击逻辑添加到
onTouchEvent()


文档更详细。

你说的“完全被占用”是什么意思?如果子视图仅占布局的一部分,该怎么办?您所说的“完全占用”是什么意思?如果子视图只占布局的一部分,该怎么办?这不是问题的解决方案。他在设置onClick侦听器方面没有问题,但是当他按下布局的子视图时,该侦听器不会激活。@Dchaser88我的布局有一些文本视图scool。那么为什么不让您的子视图像下面这样不可链接,textview.setOnClickListener(null);view.setOnLongClickListener(空);textview.setLongClickable(false);并使外线布局可点击,这样它会工作是吗?这不是问题的解决方案。他在设置onClick侦听器方面没有问题,但是当他按下布局的子视图时,该侦听器不会激活。@Dchaser88我的布局有一些文本视图scool。那么为什么不让您的子视图像下面这样不可链接,textview.setOnClickListener(null);view.setOnLongClickListener(空);textview.setLongClickable(false);让外线布局可以点击,这样就可以了是吗?