2

私のアプリケーションでは、カスタムテキストボックスがありBasicEditField.FILTER_NUMERICます。ユーザーがフィールドに値を入力するときは、通貨形式にコンマを追加する必要があります。

例:1,234,567,8....このように。

私のコードでは、このように試しました。

protected boolean keyUp(int keycode, int time) {
    String entireText = getText();
    if (!entireText.equals(new String(""))) {
        double val = Double.parseDouble(entireText);

        String txt = Utile.formatNumber(val, 3, ",");// this will give the //comma separation format 
        setText(txt);// set the value in the text box
    }
    return super.keyUp(keycode, time);
}

正しい数値形式が表示されます...テキストボックスに値を設定すると、が表示されますIllegalArgumentExceptionBasicEditField.FILTER_NUMERICカンマ(、)のような文字を許可しないことはわかっています。

どうすればこれを達成できますか?

4

1 に答える 1

2

私はこの方法を試しました、そしてそれはうまくいきます...

public class MyTextfilter extends TextFilter {
private static TextFilter _tf = TextFilter.get(TextFilter.REAL_NUMERIC);

public char convert(char character, int status) {
    char c = 0;

    c = _tf.convert(character, status);
    if (c != 0) {
        return c;
    }

    return 0;
}

public boolean validate(char character) {
    if (character == Characters.COMMA) {
        return true;
    }

    boolean b = _tf.validate(character);
    if (b) {
        return true;

    }

    return false;
}
}

このように電話します

editField.setFilter(new MyTextfilter());
于 2012-07-30T13:02:39.277 に答える