0

editfields.so の検証を実行したいので、 に検証を書いていButtonFieldます。setChangeListener方法。が空の場合editField、ボタンをクリックすると、フィールドが空であることを示す必要があります。status.show()メッセージを表示するには、とdialog.alert()メソッドの両方を使用して試しました。しかし、どちらもNullPointerException. 何が問題ですか?誰かがこの問題を解決するのを助けることができますか、またはこの問題に対する他の解決策はありますか?

私は次のようにコードを書きました:

btnencrypt = new ButtonField("Encrypt");
        btnencrypt.setChangeListener(new FieldChangeListener() {

            public void fieldChanged(Field field, int context) {
                // TODO Auto-generated method stub

                //getphonenos();
                System.out.println("savedPhone no are in compose encrypt:"+savedphoneno);
                encryptClicked= true;

                if (savedphoneno.equals("")) { **Getting the exception here....**

                    Dialog.alert("Please select valid contact");     
                } else {
                    if (!(savedphoneno.equals(""))) {

                        if (edmsg.getText().toString().trim().equals("")) {
                            Dialog.alert("Please enter message");

                        }else {

                            int index = savedphoneno.indexOf(",");
                            if (index < 0) {
                                encryptBTNClicked = true;
                                try {
                                    base64msgString = encrypt(savedphoneno);
                                } catch (CryptoException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                } catch (IOException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }
                                edencryptmsg.setText(base64msgString);
                            } else {
                                //encryptTV.setText("");
                                edencryptmsg
                                .setText("Sending data to multiple receipients,"
                                        + "can't show the encrypted msg,as it varies");
                                //edencryptmsg.setTextColor(Color.MAGENTA);
                            }
                            btnencrypt.setEnabled(false);
                            btnclear.setEnabled(false);
                        }

                    }

                }
            }

        });
4

1 に答える 1

1

文字列が有効かどうかをチェックする StringUtils クラスに入れる便利なメソッドがあります。

/**
 * Tests if a string is a non-null, non-empty string. This can be called to
 * determine if the string should be displayed, or not.
 * 
 * @param text
 *        String to test.
 * @return
 *         If <code>text</code> is <code>null</code>, returns
 *         <code>false</code>. <br>
 *         If <code>text</code> is an empty string (""), returns
 *         <code>false</code>. <br>
 *         Else returns <code>true</code>.
 */
public static boolean isNonBlankString(String text)
{
    // null text -> false
    if (text == null)
        return false;

    // empty text -> false
    if ("".equals(text))
        return false;

    return true;
}

これは、Rupak の回答に役立ちます。

于 2012-06-11T13:23:30.043 に答える