获取/设置值全局共享首选项

时间:2011-11-14 21:44:14

标签: android sharedpreferences

您好我有一个班级(MyCustomForm.xml)我用作LoginForm用户。 现在我想使用EditTextLoginForm保存并加载用户名(SharedPreferences)中的值,但我不知道如何设置{{1}保存的用户名值进入SharedPreferences中的EditText

我正在考虑将LoginForm(MyCustomForm.xml中的值保存在我的Main.xml中,并通过OnPause类中的OnCreate加载值

通常我想使用MyCustomForm.xml全球。

这看起来怎么样? 有人可以帮助我走上正轨吗?

正在考虑这样的事情SharedPreferences

Main.xml

代码public class AndroidLogin extends Activity implements OnClickListener { @Override protected void onPause() { super.onPause(); Editor e = mPrefs.edit(); e.putString(USERNM, username); e.commit(); } } ):

MyCustomForm (LoginForm

5 个答案:

答案 0 :(得分:10)

您可以这样做:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(YouActivity.this);

String servername = settings.getString("sharedPreferencesKey", "defaultValue");
server.setText(servername);  // EditText

您存储的数据如下:

SharedPreferences.Editor editor = settings.edit();
editor.putString("server", "serverName");

编辑:

这段代码可以帮到你:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
String servername = settings.getString("sharedPreferencesKey", "defaultValue");

答案 1 :(得分:2)

你需要使用Prefs&编辑

SharedPreferences spOptions;
SharedPreferences.Editor spOptionEditor;

spOptions = getSharedPreferences("yourKey", 0);
spOptionEditor = spOptions.edit();

string username = spOptions.getString("USERNM", null)
如果您还没有存储任何内容,

null表示默认值

您存储的数据如下:

spOptionEditor.putString("USERNM", txtUsername.getText().toString());
spOptionEditor.commit();

答案 2 :(得分:1)

通常我建议您将用户名保存在有效的登录名上,而不是任何生命周期方法中。 然后将myForm更改为:

public class MyCustomForm extends Dialog {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(com.sencide.R.layout.inlogdialog);
        String s = getContext().getSharedPreferences("prefName", Mode.PRIVATE).getString(USERNM);
        EditText userTest = (EditText)findViewById(R.id.txtUserName);
        userTest.setText(s);
    }

}

答案 3 :(得分:0)

只需创建一个名为preferences的文件...并使用不同的方法将值存储到它。

使用人们建议的方法来从中获取数据......

    public class Settings extends PreferenceActivity implements
    OnSharedPreferenceChangeListener{
          public static final String PREFS_PRIVATE = "PREFS_PRIVATE";
          public static final String MASTERKEY = "!@#$%^&*";

          public static final String KEYA = "KEYA";
          public static final String KEYB = "KEYB";
          public static final String KEYC = "KEYC";

           --- the create and get methods for getting and sharing data in the prefs... ..... 
         public static void createPreference(Context context){

        getPrefs(context).edit().putString(KEYA, "Default");
        getPrefs(context).edit().putInt(KEYB, 0);
        getPrefs(context).edit().putLong(KEYC, 0);
        getPrefs(context).edit().putBoolean(KEYD, false);
        getPrefs(context).edit().commit();

    }

    public static SharedPreferences getPrefs(Context context) {
        return context.getSharedPreferences(PREFS_PRIVATE, 0);
        }
        public static String getUsername(Context context) {

            getPrefs(context).getString(USERNAME, "default");

        }

    public static void setUsername(Context context, String value) {


            getPrefs(context).edit().putString(USERNAME, value).commit();

    }
}

.....等等.....如果您发现任何疑问或任何您需要的更具体的事情,请立即实施,请告诉我。

答案 4 :(得分:0)

public void sharedPrefernces() {
    sh_Pref = getSharedPreferences("Login Credentials", MODE_PRIVATE);
    toEdit = sh_Pref.edit();
    toEdit.putString("Username", username);
    toEdit.putString("Password", password);
    toEdit.commit();

}

了解详情:http://mrbool.com/how-to-implement-shared-preferences-in-android/28370#ixzz34ymRp6mN