Обновить текстовое представление при нажатии флажка предпочтения - PullRequest
0 голосов
/ 20 ноября 2018

Я добавил два TextViews и одну кнопку на моем PreferenceScreen с большим количеством CheckboxPreference, похожим на следующее. Изображение Когда я нажимаю кнопку, я хочу отключить все CheckboxPreference и обновить текстовое представление metricsChoose. Однако метод setText не смог этого сделать.

clearAllItem - метод кнопки onClick

public void clearAllItem(View view) {

    metricsChooserTextView.setText("0 metric chosen");
    Toast.makeText(this, "Clear all selected items", Toast.LENGTH_SHORT).show();
}

мой xml-файл выглядит так

<Preference
        android:selectable="false"
        android:layout="@layout/activity_setting">

    </Preference>

    <PreferenceCategory
        android:key="emotion"
        android:title="Emotion Category">

        <CheckBoxPreference
            android:defaultValue="true"
            android:key="joy"
            android:title="JOY"
            android:summary="Enable or disable detecting joy">

        </CheckBoxPreference>

        <CheckBoxPreference
            android:defaultValue="true"
            android:key="anger"
            android:title="ANGER"
            android:summary="Enable or disable detecting anger">

        </CheckBoxPreference>

        <CheckBoxPreference
            android:defaultValue="true"
            android:key="fear"
            android:title="FEAR"
            android:summary="Enable or disable detecting fear">

        </CheckBoxPreference>

        <CheckBoxPreference
            android:defaultValue="true"
            android:key="disgust"
            android:title="DISGUST"
            android:summary="Enable or disable detecting disgust">

        </CheckBoxPreference> 

Макет Activity_setting выглядит следующим образом:

<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="2dp"
        android:paddingBottom="2dp"
        android:textSize="18sp"
        android:text="@string/choose_metrics_message"/>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="5dp"
        >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/clear_all"
            android:layout_alignParentEnd="true"
            android:layout_centerVertical="true"
            android:id="@+id/clear_all_button"
            android:onClick="clearAllItem"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toStartOf="@id/clear_all_button"
            android:textSize="18sp"
            android:id="@+id/metrics_chooser_textview"
            android:text="@string/metric_chooser_default_message"
            android:layout_centerVertical="true"/>
    </RelativeLayout>

    <!-- Preference should place its actual preference widget here. -->
    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    </ListView>
...