Изменить стиль кнопки программно на основе логического значения.Не выбранный элемент должен вернуться к первоначальному стилю - PullRequest
0 голосов
/ 28 декабря 2018

Я создаю контрольный список, у меня есть 2 кнопки.Когда я нажимаю false, я хочу изменить стиль.Когда я нажимаю на true, я хочу, чтобы false вернул исходный стиль и изменил стиль кнопки True

<LinearLayout             xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
    android:id="@+id/inspectionItemText"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_margin="4dp"
    android:layout_weight="2"
    android:text="Inspection Item"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@+id/itemInspectedTrue"
    style="@style/Base.Widget.AppCompat.Button.Borderless"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_margin="4dp"
    android:layout_weight="0.5"
    android:background="@drawable/button_border"
    android:text="Pass"
    android:textColor="@color/colorPrimaryDark"
    android:textStyle="bold" />

<Button
    android:id="@+id/itemInspectedFalse"
    style="@style/Base.Widget.AppCompat.Button.Borderless"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_margin="4dp"
    android:layout_weight="0.5"
    android:background="@drawable/button_border"
    android:text="Fail"
    android:textColor="@color/colorPrimaryDark"
    android:textStyle="bold" />


 </LinearLayout>

1 Ответ

0 голосов
/ 28 декабря 2018

Вы не можете изменить тему просмотра программно (что определено в xml), но вы можете изменить всю тему вашей деятельности программно.

С помощью селектора можно различать выбранное и невыбранное состояние

drawable/button_background.xml

<?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/button_pressed" />
  <item
    android:state_pressed="false"
    android:drawable="@drawable/button_normal" />
</selector>

и в файле макета XML

<Button
    android:id="@+id/itemInspectedFalse"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_margin="4dp"
    android:layout_weight="0.5"
    android:background="@drawable/button_background"
    android:text="Fail"
    android:textColor="@color/colorPrimaryDark"
    android:textStyle="bold" />
...