Android:STATE_SELECTED不工作

android:state_selected not working(Android:STATE_SELECTED不工作)

本文介绍了Android:STATE_SELECTED不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只想使用XML文件中的选择器在按钮点击时更改图像。android:state_pressed="true"正在工作,而android:state_selected="true"不工作。 以下是我的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_selected="true"
        android:state_checked="false"
        android:state_focused="false"
        android:state_pressed="false"
        android:drawable="@drawable/discount1"/>
    <item
        android:state_pressed="true"
        android:drawable="@drawable/discount1"/>
    <item
        android:drawable="@drawable/discount2"/>
</selector>

以下是active_main.xml:

<?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="com.example.democoordinatorlayout.MainActivity">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/buttonselector"
         />
</RelativeLayout>

推荐答案

buttonselector更改为此。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:state_pressed="true"
   android:drawable="@drawable/discount1" /> <!-- pressed state -->

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

编辑

若要永久更改按钮的图像,请使用以下代码。

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/your_image1"/>

然后在Java文件中添加以下内容:

Button btn = (Button) findViewById(R.id.button1);

        btn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
               btn.setBackgroundResource(R.drawable.your_image2);
            }
        });

这篇关于Android:STATE_SELECTED不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Android:STATE_SELECTED不工作

基础教程推荐