单击与单击侦听器绑定的布局视图内的按钮的侦听器在Android中不起作用

时间:2016-03-13 13:32:00

标签: android android-button

我正在开发一款Android应用。在我的应用程序中,我在布局视图中有一个按钮。布局视图设置单击侦听器。内部布局中的按钮也与单击侦听器绑定。但是当我在布局中点击按钮时,两个听众都无法正常工作。但是当我单击布局视图避免按钮时,布局视图的监听器正在工作。

例如,这是我的布局文件

<LinearLayout>
<LinearLayout
        android:id="@+id/child_container"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
         <Button
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:text="LIKE"
            android:id="@+id/btn_click"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>

这是我活动的onCreate事件的示例

childContainer.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                   //this is working
                                }
                            });

btn.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    //This is not working
                                }
                            });

如您所见,我将android:focusable="false"android:focusableInTouchMode="false"设置为布局文件中的按钮。但单击按钮的监听器不起作用。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

删除以下行:

android:focusable="false"
android:focusableInTouchMode="false"

来自docs:

android:focusable="false"

  

用于控制视图是否可以获得焦点的布尔值。默认情况下   用户无法将焦点移动到视图;通过将此属性设置为true   视图可以成为焦点。

android:focusableInTouchMode="false"

  

控制是否的布尔值   在触摸模式下,视图可以获得焦点。如果对于视图是这样,   该视图在点击时可以获得焦点,并且可以保持焦点   单击另一个没有设置此属性的视图   真。

查看需要专注于调用点击侦听器。