我正在處理我的Android應用程序的首選項屏幕。如果前一個項目具有特定值,我想禁用(變灰)一個項目。Android:我如何從我的主要活動調用findPreference()?
我已經實現了兩個類: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)未定義爲e類型MainActivity「)。 我的方法錯了嗎?我在PreferencesActivity中實現了onSharedPreferenceChanged()方法?如果是這樣,我如何在PreferencesActivity中使用MainActivity屬性?
您可以分享您所做的代碼更改以解決問題嗎?我不完全知道你是如何實現它的。 – impossible 2016-07-04 06:59:57