2012-01-20 119 views
0

我已經創建了應用程序的登錄名。我知道,如果你輸入用戶名和密碼,然後點擊複選框,它會記住用戶名和密碼。但是,如果您在單擊複選框後進行任何更改,則不會保存它們。我想知道是否有辦法解決這個問題,我會如何解決這個問題。我在想的是,當點擊edittext時,它會不斷保存editext中的內容。基本上,當用戶在單擊複選框時更改密碼或用戶名時,會動態保存一些內容。Android登錄記住我複選框

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(); 

} 

回答

1

我認爲最簡單的解決方案是在按下登錄(或其他)按鈕時保存登錄信息。所以當按下按鈕時,從EditTexts獲取數值並將它們存儲在SharedPreferences中。

+0

謝謝,一個很好的簡單解決方案。謝謝 – Aaron

1

我相信你打電話Saveprefernces時勾選複選框。相反,您應該這樣做,一旦你知道你的登錄是成功的,這樣只有一對有效的用戶名:密碼被保存