我在重构SettingsActivity.java时遇到了问题。
首先,我扩展了PreferenceActivity,但没有采用 addPreferencesFromResource(R.xml.pref_general)因为它标记了decaprecated以及findPreference(getString(R.string.pref_location_key)。我已经改为PreferenceFragment并且它采用了上述两种方法但现在无法解析getMenuInflater()。inflate(R。 menu.menu_settings,menu);
此外它显示:“无法解析符号pref_units_keys” bindPreferenceSummaryToValue(findPreference(的getString(R.string.pref_units_key)));
最后在ForecastFragment.java中,我无法正确使用此方法:
private String formatHighLows(double high, double low){
// Data is fetched in Celsius by default.
// If user prefers to see in Fahrenheit, convert the values here.
// We do this rather than fetching in Fahrenheit so that the user can
// change this option without us having to re-fetch the data once
// we start storing the values in the database
SharedPreferences sharedPrefs =
PreferenceManager.getDefaultSharedPreferences(getActivity());
String unitType = sharedPrefs.getString(
getString(R.string.pref_units_key),
getString(R.string.pref_units_metric));
if(unitType.equals(getString(R.string.pref_units_imperial))){
high = (high * 1.8) + 32;
low = (low * 1.8) + 32;
}else if(!unitType.equals(R.string.pref_units_metric)){
Log.d(LOG_TAG, "Unit type not found: " + unitType);
}
我可能需要在string.xml文件中声明de units和metric ...
我该怎么办?
以下是整个代码的链接:http://pastebin.com/KJRbj6Sd#
答案 0 :(得分:2)
您可能需要获取活动参考。
尝试在gem "rmagick", "2.13.3", :require => "RMagick"
之前添加getActivity()
,并在每个getMenuInflater()
之前添加getResources()
。
getString()