gpt4 book ai didi

Android:如何从我的主要 Activity 中调用 findPreference()?

转载 作者:太空狗 更新时间:2023-10-29 12:53:16 24 4
gpt4 key购买 nike

我正在处理我的 Android 应用程序的首选项屏幕。如果前一个项目具有特定值,我想禁用(将其灰显)。

我实现了两个类:MainActivity 和 PreferencesActivity。

在 MainActivity 中我这样做:

public class MainActivity extends Activity implements OnSharedPreferenceChangeListener {
...
public void onCreate (Bundle savedInstanceState) {
...
sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
sharedPrefs.registerOnSharedPreferenceChangeListener(this);
...
}

然后,当用户请求我的首选项时:

startActivity(new Intent(this, PreferencesActivity.class));

然后,为了处理 MainActivity 中的首选项,我这样做:

@Override
public void onSharedPreferenceChanged (SharedPreferences prefs, String key) {
if ("sport".equals(key)) {
sport = prefs.getString("sport", "");
ListPreference lp = findPreference("match_duration");
if (sport.equals(getString(R.string."sport_soccer"))) {
lp.setEnabled(false);
}
}
...
}

问题是我无法在 MainActivity 中调用 findPreference(“方法 findPreference(String) 未定义 MainActivity 类型”...)。我的方法错了吗?我应该在 PreferencesActivity 中实现 onSharedPreferenceChanged() 方法吗?如果是这样,我如何在 PreferencesActivity 中使用 MainActivity 属性?

最佳答案

findPreference() 应该从实现 PreferenceActivity 接口(interface)的类中调用(在我的上下文中是 PreferencesActivity)。 MainActivity 属性可以通过 SharedPreferences 类访问。

关于Android:如何从我的主要 Activity 中调用 findPreference()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9646247/

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