我需要在自定义'android.support.v7.preference.Preference'
类中调用一个方法。
我这样添加了Preferences
类:
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)
我不知道该怎么称呼!有可能吗?
答案 0 :(得分:1)
您必须在if (isVisibleToUser)
块中构造自定义首选项的实例。
尝试使用您的PreferenceFragmentCompat子类,
CustomPreference pref = findPreference(getString(R.string.pref_key_show_stat));
pref.CallMee();