我只是意外地删除了我的最后一个问题,所以它又来了。
我有下面的类,我把它放在一起来测试偏好类。我面临的问题是,当我从首选项类传递或调用时,没有任何反应。代码编译良好,但我无法获取或设置我的首选项。它似乎卡在SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
上,因为我使用了一些打印语句来查看它停止的位置。我已经尝试在 android 网站上使用该示例,但这没有帮助。有人有什么想法吗?
public class Preferences extends Activity{
public void getSetPrefs(){
Preferences p = new Preferences();
p.setLocationPref("london", "1");
String location = p.getLocation();
String location_id = p.getLocation();
}
}
首选项类
public class Preferences extends Activity{
/** Sets location preferences */
public void setLocationPref(String location, int location_id){
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("location", location);
editor.putInt("location_id", location_id);
editor.commit();
}
/** Get location from preferences */
public String getLocation(){
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
String location = sharedPreferences.getString("location", "");
return location;
}
/** Get location ID from preferences */
public int getLocationID(){
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
int locationID = sharedPreferences.getInt("location_id", 0);
return locationID;
}
}
我总是通过如下调用来检索首选项:
String location = PreferenceManager.getDefaultSharedPreferences(this).getString("location", "");