首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从PreferenceFragmentCompat内部访问自定义首选项类

如何从PreferenceFragmentCompat内部访问自定义首选项类
EN

Stack Overflow用户
提问于 2019-08-13 15:57:47
回答 1查看 77关注 0票数 1

我需要在自定义'android.support.v7.preference.Preference'类中调用一个方法。

我像这样添加了Preferences类:

addPreferencesFromResource(R.xml.app_prefs)

R.xml.app_prefs:

代码语言:javascript
运行
复制
    <PreferenceCategory
        android:layout="@layout/pref_category_text"
        android:title="@string/pref_category_stat_out_title">
        <com.sun.preferences.CustomPreference android:key=" @string/pref_key_show_stat" />
    </PreferenceCategory>

您可以看到上面的CustomPreference

它有这样的方法CallMee(),非常简单,为了简单,我去掉了一些东西:

代码语言:javascript
运行
复制
public class CustomPreference extends Preference {

  public CustomPreference(Context context) {
     super(context);
  }

  public void CallMee(){

  }
}

我已经在PreferenceFragmentCompat中尝试使用该方法:

代码语言:javascript
运行
复制
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
    super.setUserVisibleHint(isVisibleToUser)

   if(isVisibleToUser)
     // call method CallMee() inside `CustomPreference` but how?

}

由于此自定义CustomPreference是从addPreferencesFromResource(R.xml.app_prefs)添加的

我不知道该怎么叫它!有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-22 22:45:38

您必须在if (isVisibleToUser)块中构造一个自定义首选项的实例。

在您的PreferenceFragmentCompat子类中尝试,

代码语言:javascript
运行
复制
CustomPreference pref = findPreference(getString(R.string.pref_key_show_stat));
pref.CallMee();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57473463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档