fc2ブログ

2013
06/17

Android 入力チェック(バリデーション)ってどうするの? その4

Android

前回は必須チェックだけだったので、今回はそれ以外についても書いてみる。

前回の画像でチラリと出現しているが、
今回はチェックボックスと日付のチェックについて。

まずはチェックボックス。

enhancerTestチェック

上記の画像を見ると、メッセージに「hobbiesは少なくとも2個選択してください」と表示されている。
そう!必須選択個数を簡単に設定できるのだ!便利!!

さっそく、定義方法を紹介。
下記コードの@Requiredに注目。
※@Widgetの定義は前回のラジオボタンと同じ方法。(RadioGroupの代わりにLinearLayoutを使おう!)
▼TestForm.java

@Widget(id = R.id.testform_checkbox_hobby, values = {
@WidgetValue(id = R.id.testform_checkbox_hobby_cook, value = "cook"),
@WidgetValue(id = R.id.testform_checkbox_hobby_drive, value = "drive"),
@WidgetValue(id = R.id.testform_checkbox_hobby_pet, value = "drive") })
@Required(atLeast = 2)
public List<String> hobbies;


たったこれだけ。実に簡単。

次に、日付のチェックについて説明する。
日付のチェックは2種類用意されている。
ただ、日付形式で入力されているかどうかをチェックする「@DatePattern」と
さらに過去の日付であるかどうかもチェックする「@PastDate」。
今回は生年月日なので、過去の日付かどうかチェックする。


@Widget(id = R.id.testform_edittext_birthday)
@Required
@PastDate(value = "yyyy-MM-dd", allowToday = true)
public String birthday;


上記の通り、@PastDateをフィールドに付与するだけ。
valueは任意なので指定しなくてもいい。
デフォルトは yyyy/MM/dd となる。(※端末の言語設定が日本語の場合)

allowTodayは今日を許可するかどうか。上記は今日を許可する(エラーとしない)設定。
こちらも任意で、デフォルトはfalseになっている。

ではでは表示を見てみよう。

▼過去の日付だが、形式に誤りがある
enhancerTestフォーム3

▼形式は正しいが、未来の日付である
enhancerTestフォーム4

▼OK
enhancerTestフォーム5

欲を言うと、1番目の形式誤りは
「birthdayはyyyy-MM-dd形式で入力してください」と表示してほしいが(わがまま)
こんな便利なライブラリを本当にありがとうございます。
スポンサーサイト



CM

NAME
TITLE
MAIL
URL
PASS (削除時に必要)
SECRET 管理者にだけ表示を許可する
COMMENT&
DECORATION

TB

トラックバック

http://novdev.blog.fc2.com/tb.php/14-20764a44

この記事にトラックバックする(FC2ブログユーザー)

プロフィール

nov

Author:nov
パセリはおやつです。

最新コメント

最新トラックバック

タグクラウドとサーチ

> tags

検索フォーム

ブロとも申請フォーム

QRコード
QR