0

我有一个登录页面(用户名、密码字段),其中有一个“记住我”复选框。如果选中该复选框,应用程序需要记住下次登录的用户名和密码。已经完成并且工作正常。但是我发现很难保存复选框字段的状态,即它是否被选中。我通过以下代码保存用户名/密码:

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

有人可以帮忙吗?

4

3 回答 3

2

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

于 2012-08-29T10:43:48.990 回答
0

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

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

假 = 未选中,真 = 选中

于 2012-08-29T10:59:19.727 回答
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);
}
于 2012-08-29T12:00:40.830 回答