BlackBerry在持久存储中保存复选框状态

BlackBerry在持久存储中保存复选框状态,blackberry,savestate,persistent-object-store,Blackberry,Savestate,Persistent Object Store,我有一个登录页面(用户名、密码字段),其中有一个复选框“记住我”。如果选中该复选框,则应用程序需要记住下次登录时的用户名和密码。这是做了,工作很好。但是,我发现很难保存复选框字段的状态,即是否选中。我通过以下代码保存用户名/密码: if(persistentObject.getContents()==null) { persistenthastable=新哈希表(); persistentObject.setContents(persistenthastable); }否则{ persisten

我有一个登录页面(用户名、密码字段),其中有一个复选框“记住我”。如果选中该复选框,则应用程序需要记住下次登录时的用户名和密码。这是做了,工作很好。但是,我发现很难保存复选框字段的状态,即是否选中。我通过以下代码保存用户名/密码:

if(persistentObject.getContents()==null)
{
persistenthastable=新哈希表();
persistentObject.setContents(persistenthastable);
}否则{
persistentHashtable=(哈希表)persistentObject.getContents();
}
if(persistentHashtable.containsKey(“用户名”)&&persistentHashtable.containsKey(“密码”))
{
username.setText((字符串)persistenthastable.get(“用户名”);
passwd.setText((字符串)persistenthastable.get(“密码”);
}   
如果选中该复选框并且登录成功,则通过以下方式保存用户名和密码:

if(checkBox1.getChecked()==true)
{
persistenthastable.put(“用户名”,用户id);
persistentHashtable.put(“密码”,password);
}
我试图用下面的行保存复选框状态,但这是不正确的

persistentHashtable.put(“checkbox”,checkBox1.setChecked(true));

有人能帮忙吗?

RIM rapc.exe编译器不支持自动装箱(它在java 1.3兼容模式下工作),然后在将布尔值保存到哈希表或将其传递到持久存储之前,您需要将布尔值包装到一个
布尔类实例。

嘿,伙计们,我找到了解决问题的方法。我通过检查用户名字段是否为空,然后复选框状态应为“未选中”,否则应为“已选中”。这正是我想要的。如果你们有更好的方法,请提出建议。我的工作代码如下:

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

false=未选中,true=已选中

复选框用于用户愿望,根据您的代码,如果用户已输入用户名,复选框将被选中。 您的代码有点复杂,首先需要将内容代码设置为persistent,最后设置哈希表。您有一个登录屏幕,因此必须有一个提交按钮。 在提交按钮事件中执行以下操作:

//设置持久值的步骤
if(checkBox1.getChecked()==true)
{
persistenthastable=新哈希表();
persistenthastable.put(“用户名”,用户id);
persistentHashtable.put(“密码”,password);
persistenthastable.put(“复选框”、“true”);
persistentObject.setContents(persistenthastable);
persistentObject.commit();
}
//从持久值中获取
if(persistentObject.getContents()!=null)
{
persistentHashtable=(哈希表)persistentObject.getContents();
username.setText((字符串)persistenthastable.get(“用户名”);
passwd.setText((字符串)persistenthastable.get(“密码”);
String boolval=(String)persistentHashtable.get(“复选框”);
if(布尔值等于(“真”))
checkBox1=新的CheckboxField(“记住我”,true);
其他的
checkBox1=新的CheckboxField(“记住我”,false);
}

使用类似这样的方法,checkBox1.getChecked()==true?“TRUE”:“FALSE”用于将布尔值存储为字符串。当我尝试将复选框状态放入persistentHashtable时,我得到“类型Hashtable中的方法put(Object,Object)不适用于参数(String,boolean)”。Ohh Yeah。。我还没有检查密码。将布尔值替换为字符串,如“true”或“false”&在获取值时检查它。这可能有用。