Android登录记住我的复选框

时间:2012-01-20 22:57:01

标签: android login checkbox android-edittext

我已经为应用程序创建了一个登录名。我知道如果你输入用户名和密码,然后点击它会记住用户名和密码的复选框。但是,如果在单击复选框后进行任何更改,则不会保存它们。我想知道是否有办法解决这个问题,我将如何做到这一点。我在想的是当点击edittext时它会不断保存editext中的内容。基本上,当用户在单击复选框时更改密码或用户名时,会动态保存的内容。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_log_in);
    SharedPreferences.Editor editor;

    name = (EditText) findViewById(R.id.userName);
    password = (EditText) findViewById(R.id.password);
    button = (Button) findViewById(R.id.Button01);
    error = (TextView) findViewById(R.id.invalid);
    error.setVisibility(View.INVISIBLE);
    checkbox = (CheckBox) findViewById(R.id.remember);


    LoadPreferences();
    LoadPreferences1();
}


public void rememberInfo(View view) {
        SavePrefernces("MEM1", name.getText().toString());
        SavePrefernces("MEM2", password.getText().toString());


}

private void LoadPreferences1() {
    SharedPreferences shardPreferences = getPreferences(MODE_PRIVATE);
    String strSavedMem2 = shardPreferences.getString("MEM2", "");
    password.setText(strSavedMem2);


}

private void LoadPreferences() {
    SharedPreferences shardPreferences = getPreferences(MODE_PRIVATE);
    String strSavedMem1 = shardPreferences.getString("MEM1", "");
    name.setText(strSavedMem1);


}

private void SavePrefernces(String key, String value) {
    SharedPreferences shardPreferences = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = shardPreferences.edit();
    editor.putString(key, value);
    editor.commit();

}

2 个答案:

答案 0 :(得分:1)

我认为最简单的解决方案是在按下登录(或其他)按钮时保存登录详细信息。因此,当按下按钮时,从EditText获取值并将它们存储在SharedPreferences中。

答案 1 :(得分:1)

我相信在选中复选框时,您正在调用Saveprefernces。相反,一旦你知道你的登录成功,你应该这样做,这样只保存一对有效的用户名:密码