Androidアプリを作る上での基本的なUIの使い方を解説します。
EditText
大抵のアプリでユーザが文字を入力する場面は出てきますよね。
ユーザ情報の入力であったり、チャットの内容の入力であったり。
そんなユーザに文字情報を入力してもらう際に使うのがウィジェットが
EditTextになります。
レイアウトxmlにEditText要素を配置します。
1 2 3 4 5 6 7 8 | ///... < EditText android:id = "@+id/edit_text" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:hint = "文字を入力" /> //... |
どのようなテキストをユーザに教えるにはhint属性を用います。
未入力時に指定した文字列が表示されます。
コード側で入力された値を取得するにはEditText#getText()を用いればOKです。
1 2 | EditText editText = (EditText) findViewById(R.id.edit_text); String text = editText.getText().toString(); |
inputType
<EditText>にはinputTypeという属性が用意されており、これに指定する値を変えることで入力に制限を加えたり、
挙動を変えることができます。
使える値を幾つかあげたいと思います。
text | 通常のテキスト |
number | 数字オンリー |
textPassword | パスワード(入力した文字が隠れる) |
textMultiLine | 通常のテキストだが、改行ができる |
phone | 電話番号 |
textAutoCorrect | 電話番号 |
1 2 3 4 5 6 7 | < EditText android:id = "@+id/edit_text" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:hint = "文字を入力" android:inputType = "textMultiLine" /> |
入力補完
ユーザの入力に対して補完提示をしたい場合はAutoCompleteTextViewという
EditTextのサブクラスを使います。
1 2 3 4 | < AutoCompleteTextView android:id = "@+id/autocomplete" android:layout_width = "match_parent" android:layout_height = "wrap_content" /> |
補完で表示する候補は自分でxmlファイルに文字列を定義しておく必要があります。
1 2 3 4 5 6 7 | < resources > < string-array name = "suggestions" > < item >suggestion1</ item > < item >suggestion2</ item > < item >suggestion3</ item > </ string-array > </ resources > |
コードでこのリソースを読み込みAdapterを用いてAutoCompleteTextViewにセットしてあげます。
1 2 3 4 5 | AutoCompleteTextView autocomplete = (AutoCompleteTextView)findViewById(R.id.autocomplete); String[] suggestions = getResources().getStringArray(R.array.suggestions); ArrayAdapter<String> adapter = new ArrayAdapter<>( this , android.R.layout.simple_list_item_1, suggestions); autocomplete.setAdapter(adapter); |