第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 PreferenceFragmentCompat 中點(diǎn)擊時(shí)觸發(fā)事件

如何在 PreferenceFragmentCompat 中點(diǎn)擊時(shí)觸發(fā)事件

撒科打諢 2024-01-25 15:14:48
我用的是androidx。在設(shè)置片段中,我想創(chuàng)建“首選項(xiàng)”按鈕并單擊它們以觸發(fā)一些單獨(dú)的事件。如何在特定首選項(xiàng)上實(shí)現(xiàn)點(diǎn)擊偵聽器?這是我的一些代碼:import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import androidx.appcompat.widget.Toolbar;import androidx.preference.PreferenceFragmentCompat;import androidx.preference.PreferenceManager;import androidx.preference.PreferenceScreen;public class SettingsFragment extends PreferenceFragmentCompat {    @Override    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {        addPreferencesFromResource(R.xml.preference);    }    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View view = super.onCreateView(inflater, container, savedInstanceState);        view.setBackgroundColor(getResources().getColor(R.color.graylight));        Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);        toolbar.setTitle(R.string.action_settings);        toolbar.setLogo(R.drawable.ic_settings_white_24dp);        PreferenceManager preferenceManager = getPreferenceManager();        PreferenceScreen preferenceScreen = getPreferenceScreen();        return view;    }}和 XML:<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto">    <PreferenceCategory        android:title="@string/setting_person"        app:initialExpandedChildrenCount="0"        app:key="profile_set">        <Preference            android:id="@+id/preference2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:key="button1"            android:summary="@string/setting_person_data"            android:title="@string/setting_person_reg"    </PreferenceCategory></PreferenceScreen>結(jié)果我想在MainActivity中點(diǎn)擊觸發(fā)一個(gè)事件。但這是另一個(gè)問題,現(xiàn)在至少我應(yīng)該監(jiān)聽該事件,例如通過按下按鈕的按鍵來調(diào)用 Toast。
查看完整描述

2 回答

?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

找到首選項(xiàng),然后在其上設(shè)置點(diǎn)擊偵聽器。


public class SettingsFragment extends PreferenceFragmentCompat {


    @Override

    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {


        addPreferencesFromResource(R.xml.preference);


        Preference preference = findPreference("button1");

        preference.setOnClickListener(new OnPreferenceClickListener() {

            @Override

            public boolean onPreferenceClick(Preference p) {

                // Handle preference click

            }

        });

    }

}

請(qǐng)查看有關(guān)使用首選項(xiàng)的文檔:


https://developer.android.com/reference/androidx/preference/package-summary.html https://developer.android.com/reference/androidx/preference/PreferenceFragmentCompat.html https://developer.android.com/reference/androidx/preference/PreferenceFragmentCompat.html#findPreference(java.lang.CharSequence) https://developer.android.com/reference/androidx/preference/Preference.OnPreferenceClickListener.html


希望有幫助!


查看完整回答
反對(duì) 回復(fù) 2024-01-25
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

經(jīng)過一番折騰,找到解決辦法如下:(針對(duì)AndroidX)


import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;


import androidx.appcompat.widget.Toolbar;

import androidx.preference.Preference;

import androidx.preference.PreferenceFragmentCompat;


public class SettingsFragment extends PreferenceFragmentCompat {


        @Override

        public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {


            addPreferencesFromResource(R.xml.preference);


            Preference preferenceMap = findPreference("button");


            preferenceMap.setOnPreferenceClickListener(

                    new Preference.OnPreferenceClickListener() {

                        @Override

                        public boolean onPreferenceClick(Preference arg0) {

                            getActivity().onBackPressed();

                            ((MainActivity) getActivity()).injectSetting("map");

                            return true;

                        }

                    });


        }


        @Override

        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


            View view = super.onCreateView(inflater, container, savedInstanceState);

            view.setBackgroundColor(getResources().getColor(R.color.graylight));


            Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);

            toolbar.setTitle(R.string.action_settings);

            toolbar.setLogo(R.drawable.ic_settings_white_24dp);


            return view;

        }


    }

并在 XML androidx.preference 中添加到元素中:


<?xml version="1.0" encoding="utf-8"?>

<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto">


    <androidx.preference.PreferenceCategory

        android:title="@string/setting_person"

        app:initialExpandedChildrenCount="1"

        app:key="profile_set">


        <androidx.preference.Preference

            android:id="@+id/preference1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:key="button"

            android:summary="@string/setting_person_data"

            android:title="@string/setting_person_reg"

            app:icon="@drawable/ic_assignment" />

        <androidx.preference.Preference

            android:id="@+id/preference2"

            android:key="button2"

            android:summary="@string/setting_avatar"

            android:title="@string/setting_avatar_chg"

            app:icon="@drawable/ic_wallpaper_black_24dp" />

    </androidx.preference.PreferenceCategory>


</androidx.preference.PreferenceScreen>

并且不要忘記 build.gradle 依賴項(xiàng):


implementation 'androidx.preference:preference:1.1.0'

也許有人會(huì)需要))


查看完整回答
反對(duì) 回復(fù) 2024-01-25
  • 2 回答
  • 0 關(guān)注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)