2012-08-29 131 views
0

我有一个登录页面(用户名,密码字段),其中有一个复选框'记住我'。如果选中该复选框,则应用程序需要记住用户名&密码才能进行下次登录。这样做并且工作正常。但是,我发现很难保存复选框的状态,即是否被选中。如果选中该复选框,然后登录被全成,用户名和密码保存通过以下BlackBerry将复选框状态保存在持久存储中

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

if (persistentHashtable.containsKey("username") && persistentHashtable.containsKey("password")) 
{ 
    username.setText((String) persistentHashtable.get("username")); 
    passwd.setText((String) persistentHashtable.get("password")); 
} 

if(checkBox1.getChecked() == true) 
{ 
    persistentHashtable.put("username", user_id); 
    persistentHashtable.put("password", password); 
} 

我想我是通过下面的代码保存用户名/密码用下面的行保存复选框状态,但这是不正确的。

persistentHashtable.put("checkbox", checkBox1.setChecked(true)); 

有人可以帮忙吗?

+1

使用这样的事情,checkBox1.getChecked()==真? “TRUE”:用于将布尔值存储为String的“FALSE”。 – Rupak

回答

2

RIM rapc.exe编译器不支持自动装箱(它在Java 1.3的兼容模式),然后你需要将其保存在一个哈希表或转给持久性存储之前,您的布尔值换到一个Boolean类的实例。

0

嘿家伙我设法找到解决我的问题。我通过检查用户名字段是否为空来解决问题,然后复选框状态应该是'未选中',否则应该'检查'。这正在做我想要的。如果你们中的任何人有更好的方法做这个请做建议。代码我的工作线路如下:

if(username.getText().length()==0) 
       { 
        checkBox1 = new CheckboxField("Remember me",false); 
       } 
       else 
       { 
        checkBox1 = new CheckboxField("Remember me",true); 
       } 

假=不加以控制,真正=检查

0

复选框用于用户的意愿,根据你的代码,如果用户已经输入的用户名复选框将被勾选。 你的代码有点复杂,首先你需要设置内容代码在最后一次持久化,一旦你设置你的散列表。你有一个登录屏幕,所以你必须有一个提交按钮。 做这样的提交按钮事件:

// to set persistent values 
if(checkBox1.getChecked() == true) 
{ 
persistentHashtable = new Hashtable(); 
persistentHashtable.put("username", user_id); 
persistentHashtable.put("password", password); 
persistentHashtable.put("checkbox", "true"); 
persistentObject.setContents(persistentHashtable); 
persistentObject.commit() ; 
} 

// to get from persistent values 
if (persistentObject.getContents() != null) 
{ 
persistentHashtable = (Hashtable) persistentObject.getContents(); 
username.setText((String) persistentHashtable.get("username")); 
passwd.setText((String) persistentHashtable.get("password")); 
String boolval = (String) persistentHashtable.get("checkbox"); 
if(boolval.equals("true")) 
    checkBox1 = new CheckboxField("Remember me",true); 
else 
    checkBox1 = new CheckboxField("Remember me",false); 
} 
+0

我得到“当我尝试将复选框状态置于persistentHashtable中时,类型Hashtable中的方法put(Object,Object)不适用于参数(String,boolean)”。 – Sarah

+0

哦,是的..我没有检查代码。用“true”或“false”等字符串替换布尔值并在获取值时检查它。 它可能工作。 –