我有一个登录页面(用户名,密码字段),其中有一个复选框“记住我”。如果选中该复选框,则应用程序需要记住用户名&下次登录的密码。这样做并且工作正常。但是我发现很难保存复选框字段的状态,即是否检查它。我通过以下代码保存用户名/密码:
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));
有人可以帮忙吗?
答案 0 :(得分:2)
RIM rapc.exe编译器不支持自动装箱(它在java 1.3兼容模式下工作),然后您需要将布尔值包装到Boolean
类实例,然后将其保存在哈希表中或将其传递给持久存储。
答案 1 :(得分:0)
嘿伙计们,我设法找到解决问题的方法。我通过检查用户名字段是否为空来解决,然后复选框状态应该是“未选中”,否则应该“检查”。这就是我想要的。如果你们中有人有更好的方法,请建议。我的工作代码如下:
if(username.getText().length()==0)
{
checkBox1 = new CheckboxField("Remember me",false);
}
else
{
checkBox1 = new CheckboxField("Remember me",true);
}
false =未选中,true =已检查
答案 2 :(得分: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);
}