【Android】フォーム(アカウント作成)画面用レイアウト 車輪の再発明の防止
はじめに
今、私が個人的に作成しているアプリでフォーム画面(アカウント作成画面)が必要となり、
同じ画面を今後も使う機会があるだろうと思い記録。
- 作成できる画面
組み込み方法
activity_form.xml
をres\layoutフォルダに作成
これらをres\valuesフォルダに作成
あとはActivityからactivity_formを呼び出し、
各コンポーネントの制御処理を実装する。
ソース
各ファイルのソース
- activity_form.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_make_account" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" android:background="@color/white_gray"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_marginTop="@dimen/activity_vertical_margin"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="ユーザ名" android:layout_weight="1" android:gravity="end" android:layout_marginRight="@dimen/activity_horizontal_margin"/> <EditText android:id="@+id/name" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:background="@color/white"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_marginTop="@dimen/activity_vertical_margin"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="年齢" android:layout_weight="1" android:gravity="end" android:layout_marginRight="@dimen/activity_horizontal_margin"/> <EditText android:id="@+id/age" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:inputType="number" android:background="@color/white"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_marginTop="@dimen/activity_vertical_margin"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="性別" android:layout_weight="1" android:gravity="end" android:layout_marginRight="@dimen/activity_horizontal_margin"/> <RadioGroup android:id="@+id/gender" android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight="2" android:gravity="center"> <RadioButton android:id="@+id/male" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男性"/> <RadioButton android:id="@+id/female" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女性"/> <RadioButton android:id="@+id/other" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="その他"/> </RadioGroup> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_marginTop="@dimen/activity_vertical_margin"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="住まい" android:layout_weight="1" android:gravity="end" android:layout_marginRight="@dimen/activity_horizontal_margin"/> <Spinner android:id="@+id/area" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:prompt="@string/addressPrompt" android:entries="@array/addressEntries"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_marginTop="@dimen/activity_vertical_margin"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="仕事" android:layout_weight="1" android:gravity="end" android:layout_marginRight="@dimen/activity_horizontal_margin"/> <Spinner android:id="@+id/work" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:prompt="@string/workPrompt" android:entries="@array/workEntries"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_marginTop="@dimen/activity_vertical_margin"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="その他" android:layout_weight="1" android:gravity="end" android:layout_marginRight="@dimen/activity_horizontal_margin"/> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_weight="2"> <CheckBox android:id="@+id/married" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="既婚"/> <CheckBox android:id="@+id/child" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="子持ち"/> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center|bottom"> <Button android:id="@+id/ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="OK"/> <Button android:id="@+id/cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cancel"/> </LinearLayout> </LinearLayout>
- array.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="addressEntries"> <item>北海道</item> <item>青森県</item> <item>岩手県</item> <item>宮城県</item> <item>秋田県</item> <item>山形県</item> <item>福島県</item> <item>茨城県</item> <item>栃木県</item> <item>群馬県</item> <item>埼玉県</item> <item>千葉県</item> <item>東京都</item> <item>神奈川県</item> <item>新潟県</item> <item>富山県</item> <item>石川県</item> <item>福井県</item> <item>山梨県</item> <item>長野県</item> <item>岐阜県</item> <item>静岡県</item> <item>愛知県</item> <item>三重県</item> <item>滋賀県</item> <item>京都府</item> <item>大阪府</item> <item>兵庫県</item> <item>奈良県</item> <item>和歌山県</item> <item>鳥取県</item> <item>島根県</item> <item>岡山県</item> <item>広島県</item> <item>山口県</item> <item>徳島県</item> <item>香川県</item> <item>愛媛県</item> <item>高知県</item> <item>福岡県</item> <item>佐賀県</item> <item>長崎県</item> <item>熊本県</item> <item>大分県</item> <item>宮崎県</item> <item>鹿児島県</item> <item>沖縄県</item> </string-array> <string-array name="workEntries"> <item>会社員</item> <item>経営者</item> <item>自営業</item> <item>専門職</item> <item>自由業</item> <item>主婦・家事手伝</item> <item>学生</item> <item>ニート</item> <item>その他</item> </string-array> </resources>
- strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="addressPrompt">住まい</string> <string name="workPrompt">仕事</string> </resources>
- colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#FEFEFE</color> <color name="white_gray">#EDF2F4</color> </resources>
- 作成できる画面