如何从 PreferenceFragmentCompat 内部访问自定义首选项 class
How to access custom Preference class from inside PreferenceFragmentCompat
我需要在我的自定义 'android.support.v7.preference.Preference'
class 中调用一个方法。
我这样添加 Preferences
class:
addPreferencesFromResource(R.xml.app_prefs)
R.xml.app_prefs:
<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()
就像这样真的很简单为了简单起见我删除了一些东西:
public class CustomPreference extends Preference {
public CustomPreference(Context context) {
super(context);
}
public void CallMee(){
}
}
我在PreferenceFragmentCompat
中试过使用方法:
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if(isVisibleToUser)
// call method CallMee() inside `CustomPreference` but how?
}
由于此自定义 CustomPreference
是从 addPreferencesFromResource(R.xml.app_prefs)
添加的
不知道怎么称呼!可能吗?
您必须在 if (isVisibleToUser)
的块中构建自定义首选项的实例。
在您的 PreferenceFragmentCompat 子类中尝试,
CustomPreference pref = findPreference(getString(R.string.pref_key_show_stat));
pref.CallMee();
我需要在我的自定义 'android.support.v7.preference.Preference'
class 中调用一个方法。
我这样添加 Preferences
class:
addPreferencesFromResource(R.xml.app_prefs)
R.xml.app_prefs:
<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()
就像这样真的很简单为了简单起见我删除了一些东西:
public class CustomPreference extends Preference {
public CustomPreference(Context context) {
super(context);
}
public void CallMee(){
}
}
我在PreferenceFragmentCompat
中试过使用方法:
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if(isVisibleToUser)
// call method CallMee() inside `CustomPreference` but how?
}
由于此自定义 CustomPreference
是从 addPreferencesFromResource(R.xml.app_prefs)
不知道怎么称呼!可能吗?
您必须在 if (isVisibleToUser)
的块中构建自定义首选项的实例。
在您的 PreferenceFragmentCompat 子类中尝试,
CustomPreference pref = findPreference(getString(R.string.pref_key_show_stat));
pref.CallMee();