0

ログイン ページ (ユーザー名、パスワード フィールド) に [Remember me] チェックボックスがあります。チェックボックスが選択されている場合、アプリケーションは次回のログインのためにユーザー名とパスワードを記憶する必要があります。それは完了し、正常に動作しています。ただし、チェックボックスフィールドの状態、つまりチェックされているかどうかを保存するのは難しいと思います。次のコードを使用してユーザー名/パスワードを保存しています。

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

チェックボックスは、コードに従って、ユーザーの希望に使用されます。ユーザーがユーザー名を入力した場合、チェックボックスがオンになります。あなたのコードは少し複雑です。最初に、ハッシュテーブルを設定したら、最後にコンテンツ コードを永続的に設定する必要があります。ログイン画面があるので、送信ボタンが必要です。送信ボタン イベントで次のようにします。

// 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 に答える
0

やあみんな私は自分の問題の解決策を見つけることができました。ユーザー名フィールドが空かどうかを確認することで回避しました。チェックボックスの状態は「チェックされていない」必要があり、それ以外の場合は「チェックされている」必要があります。これは私が望んでいたことをしています。誰かがこれを行うためのより良い方法を持っている場合は、提案してください。私の作業コード行は次のとおりです。

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

false = チェックなし、true = チェックあり

于 2012-08-29T10:59:19.727 に答える