ブラックベリーOS6.0で簡単なパターンマッチングを行う方法。目的は、UserName編集フィールドに入力されたユーザー名に特殊文字が含まれているかどうかを確認することです
。plzはjibysthomasに感謝します
質問する
347 次
1 に答える
1
より良い解決策は、編集フィールドに適切な TextFilter を追加してユーザー入力を制御することです。これには、オンスクリーン キーボードを変更して、装備されているデバイスのフィルターに一致させるという追加の利点があります。
以下は、2 つの組み込みテキスト フィルターのアクションを組み合わせて、大文字と数字のみを許可するフィルターを作成する例です。
import net.rim.device.api.ui.text.TextFilter;
import net.rim.device.api.system.Characters;
/**
* A TextFilter class to filter for station identifiers
*/
private static class StationFilter extends TextFilter {
// Order of the supporting filters is important, NUMERIC will convert
// letters to numbers if it gets them first.
private static TextFilter[] _tf = {
TextFilter.get(TextFilter.NUMERIC),
TextFilter.get(TextFilter.UPPERCASE)
};
// Convert using the first supporting filter that has a conversion
public char convert( char character, int status) {
char c = 0;
for (int i = _tf.length - 1; i >= 0; i--) {
c = _tf[i].convert(character, status);
if (c != 0) {
return c;
}
}
return 0;
}
// Validate a space for separator, then by supporting filter
public boolean validate(char character) {
if (character == Characters.SPACE) {
return true;
}
for (int i = _tf.length - 1; i >= 0; i--) {
boolean b = _tf[i].validate(character);
if (b) {
return true;
}
}
return false;
}
}
于 2012-05-24T14:54:46.923 に答える