2011-08-01 4 views
0

친애하는 친구 제발 도와주세요 ...... 또한 체크 박스 (CheckboxField)를 사용하여 사용자 이름 (EditField)과 암호 (PasswordEditField)를 기억하는 코드를 공유하십시오 ...영원한 저장소를 사용하여 사용자 이름과 암호를 기억하십시오

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

Richard , 나는 당신이 제안한 것을 해낸다. 그러나 여전히 나는 기대를 얻을 수 없다. pls는 도움이된다. ... RMS를 사용하여 같은 일을하는 몇 가지 코드를 제공해라. –

관련 문제