Java 选择器不适用于单击按钮效果

Java 选择器不适用于单击按钮效果,java,android,android-layout,onclick,Java,Android,Android Layout,Onclick,我想在单击itemviewholder时更改其背景色。对此,我尝试使用“选择器”和“状态按下”,但不起作用 在这个测试代码中,我尝试用一个按钮和一个线性布局来进行测试。我这样做是因为在我的真实代码中,itemviewholder将位于LinearLayout内部。这个按钮也是用来测试的。我使用的是API 16 为什么不工作(当我点击按钮或线性布局时,什么也没有发生)以及如何修复 colors.xml <?xml version="1.0" encoding="utf-8"?> <

我想在单击itemviewholder时更改其背景色。对此,我尝试使用“选择器”和“状态按下”,但不起作用

在这个测试代码中,我尝试用一个按钮和一个线性布局来进行测试。我这样做是因为在我的真实代码中,itemviewholder将位于LinearLayout内部。这个按钮也是用来测试的。我使用的是API 16

为什么不工作(当我点击按钮或线性布局时,什么也没有发生)以及如何修复

colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
</resources>

我相信这是因为你的选择和它的设置。选择器中的默认
项必须是最后一项。试一试

<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- pressed -->
    <item android:state_pressed="true"
        android:drawable="@color/colorPrimaryDark"/>

    <!-- default -->
    <item android:drawable="@color/colorAccent"/>
</selector>


正在工作,但只需按一下按钮即可。我怎样才能对线性布局做同样的事情呢?只需添加安卓:clickable=“true”。现在一切正常。谢谢
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_centerHorizontal="true"
        android:background="@drawable/item_effect"></LinearLayout>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/item_effect"/>

</RelativeLayout>
package br.com.roger.selectortest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- pressed -->
    <item android:state_pressed="true"
        android:drawable="@color/colorPrimaryDark"/>

    <!-- default -->
    <item android:drawable="@color/colorAccent"/>
</selector>