2011-08-01 76 views
0

親愛的朋友請幫助我......並且還分享一些代碼來記住用戶名(EditField)和密碼(PasswordEditField)使用複選框(CheckboxField)點擊...記住用戶名和密碼使用Persistent商店

import java.io.IOException; 
import java.util.Hashtable; 

import net.rim.device.api.system.PersistentObject; 
import net.rim.device.api.system.PersistentStore; 
import net.rim.device.api.ui.component.ButtonField; 
import net.rim.device.api.ui.component.CheckboxField; 
import net.rim.device.api.ui.component.EditField; 
import net.rim.device.api.ui.component.PasswordEditField; 
import net.rim.device.api.ui.container.MainScreen; 


public class LoginFormMainScreen extends MainScreen { 

    Hashtable persistentHashtable; 
    CheckboxField checkboxField;  
    PersistentObject persistentObject; 
    static final long KEY = 0x9df9f961bc6d6baL; 
    PasswordEditField passwordField; 
    EditField editField; 
    ButtonField loginbutton; 

    public LoginFormMainScreen() throws IOException { 
     setTitle("Persistence Test"); 
     editField = new EditField("username:", ""); 
     add(editField); 
     passwordField=new PasswordEditField("password:",""); 
     add(passwordField); 

     checkboxField = new CheckboxField("Rememberme", false); 
     add(checkboxField); 
     add(new ButtonField("Login")); 
     persistentObject = PersistentStore.getPersistentObject(KEY); 

     if (persistentObject.getContents() == null) { 
      persistentHashtable = new Hashtable(); 
      persistentObject.setContents(persistentHashtable); 
     } 
     else { 
      persistentHashtable = (Hashtable)persistentObject.getContents(); 
     } 

     if (persistentHashtable.containsKey("EditData")) { 
      editField.setText((String)persistentHashtable.get("EditData")); 
     } 


    if (persistentHashtable.containsKey("BoolData")) { 
      Boolean booleanObject = (Boolean)persistentHashtable.get("BoolData"); 
      checkboxField.setChecked(booleanObject.booleanValue()); 
      if(booleanObject.booleanValue()==true){ 
       saveChecked(); 
      } 
      } 

    } 


    public void saveChecked() throws IOException { 
     persistentHashtable.put("", editField.getText()); 
     persistentHashtable.put("", passwordField.getText()); 
     persistentHashtable.put("BoolData", new Boolean(checkboxField.getChecked())); 
     persistentObject.commit(); 
    } 



} 

列表項

+1

請提供一些細節,例如您目前的代碼不符合您的要求?你有什麼嘗試?等等... –

+0

標題從PersitentSore更改爲RMS的時間是什麼時候? – Richard

+0

好的,我看到另一個問題被關閉了。 – Richard

回答

1

這可能是因爲你是把用戶名和密碼的哈希表與空白鍵「」,而是試圖用鑰匙將其恢復「EditData」。

static class PersistentHashtable extends Hashtable implements Persistable { 
    } 

    PersistentHashtable persistentHashtable; 

    public LoginFormMainScreen() throws IOException { 

    ... 
    if (persistentHashtable.containsKey("userName")) { 
     editField.setText((String)persistentHashtable.get("userName")); 
    } 
    if (persistentHashtable.containsKey("password")) { 
     password.setText((String)persistentHashtable.get("password")); 
    } 
    ... 
} 

public void saveChecked { 
    persitentHashtable.put("userName", editField.getText()); 
    persitentHashtable.put("password", password.getText()); 
    persistentHashtable.put("BoolData", new Boolean(checkboxField.getChecked())); 
    persistentObject.commit(); 
} 
+0

謝謝...但我需要的解決方案來處理這種情況 –

+0

理查德,有什麼其他選擇這樣做...請給我的代碼,通過檢查支票簿記住用戶名和密碼... –

+0

理查德,我做你曾經建議過的......但仍然無法得到預期的...請幫助....請給我一些代碼來使用RMS也做同樣的事情... –

相關問題