Mar*_*sci 6 android preferenceactivity actionbarsherlock
我正在开发的应用程序有一个扩展的活动SherlockFragmentActivity.我想使用首选项api,以便轻松地为活动添加首选项.由于我想支持api 8级及以上,我必须从课堂上扩展活动SherlockPreferenceActivity.
问题是活动需要显示一个对话框.对话框扩展SherlockDialogFragment.show()对话框的方法需要两个参数:FragmentManager对象和String标记.
为了获得FragmentManager对象,我习惯于调用getSupportFragmentManager()活动的方法.缺少这种方法SherlockPreferenceActivity.我尝试使用,getFragmentManager()但Eclipse说
DialogFragment类型中的方法show(FragmentManager,String)不适用于参数(FragmentManager,String)
如何显示对话框片段SherlockPreferenceActivity?
您应该使用Shared Preferences而不是使用PreferenceActivity. 在单独的帮助程序类中声明这些引用,而不是将其扩展为 Activity。这使您可以灵活地创建自定义布局。
例子:
public class SharePrefManager {
// Shared Preferences
SharedPreferences pref;
// Editor for Shared preferences
Editor editor;
// Context
Context _context;
// Shared pref mode
int PRIVATE_MODE = 0;
// Sharedpref file name
private static final String PREF_NAME = "selfhelppref";
//Your configurable fields
public static final String KEY_PREF1 = "pref1";
public static final String KEY_PREF2 = "pref2";
public static final String KEY_PREF3 = "pref3";
public SharePrefManager(Context context){
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
//Setter function for configurable field
public void setPref(String key, String value){
editor.putString(key, value);
}
//Getter function for configurable field
public String getPref(String key){
return editor.getString(key);
}
}
Run Code Online (Sandbox Code Playgroud)
参考您的活动
SharePrefManager SM = new SharePrefManager(this);
SM.setPref(SM.KEY_PREF1, "name");
String value = SM.getPref(SM.KEY_PREF1);
Run Code Online (Sandbox Code Playgroud)