gpt4 book ai didi

android - 如何从静态 Preference.OnPreferenceChange 监听器获取字符串资源?害怕弄乱自动生成的代码

转载 作者:行者123 更新时间:2023-11-29 17:29:45 28 4
gpt4 key购买 nike

在 SettingsActivity 中自动生成的一些代码如下所示(缩略版):

private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object value) {
String stringValue = value.toString();

if (preference.getKey().equals("notification_period")){
preference.setSummary(stringValue + /* Resource: R.string.notification_period_summary*/));
}
return true;
}
};

我需要从 strings.xml 中获取资源,但我认为我没有要使用的上下文。我尝试将其更改为 SettingsActivity.this.getString(R...),但它说我无法通过静态方法执行此操作。我尝试向该方法添加一个 Context 上下文,但它不遵循它需要覆盖的签名。

我不太确定从哪里调用该方法,或者是否需要签名匹配才能调用它。还有另一个静态方法 private static void bindPeferenceSummaryToValue 包含这行代码:

sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,
PreferenceManager
.getDefaultSharedPreferences(preference.getContext())
.getString(preference.getKey(), ""));

我也不确定那到底是做什么的。

最佳答案

可以通过PreferencegetContext()方法获取Context:

private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object value) {
String stringValue = value.toString();

if (preference.getKey().equals("notification_period")){
String notificationPeriodSummary = preference.getContext().getResources().getString(R.string.notification_period_summary);
preference.setSummary(stringValue + notificationPeriodSummary));
}
return true;
}
};

关于android - 如何从静态 Preference.OnPreferenceChange 监听器获取字符串资源?害怕弄乱自动生成的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33385454/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com