[Android] EditText をコードで記述する

cat46 01 - [Android] EditText をコードで記述する
文字列を入力するためのEditTextですが、レイアウトファイルを使いたくないなどコードのみで記述したいケースがあります。コードのみでEditTextを記述してみます。

Android Studio 3.5.3
API 29



EditText

 
Javaコードで記述することのメリットは、ダイナミックに変更できる点です。レイアウトXMLファイルは静的なので、一度作成すると変更できません。

一方デメリットとしては、コード量が増大しがちでレイアウトファイルのように感覚的に作ることもできません。ただ、レイアウトファイルで作成した後で部分的にコードで変更することは可能です。

edittext code 02 - [Android] EditText をコードで記述する
 

 

コード化のポイント

 
テキストやボタンといった部品を配置するためには setContentView を使いますが、今回はレイアウトXMLファイルである activity_main.xml を使わないやり方です。
 
setContentView:
その名の通り、スクリーン画面にViewを設定するメソッドです。
設定されるViewはLayout形式でまとめられたViewグループになります。
 
textview code a01d 450x199 - [Android] EditText をコードで記述する
 
setContentViewのメソッドは引数の取り方でいくつかあります

  • setContentView(int layoutResID)
    • レイアウトXMLファイルのIDを指定
  • setContentView(View view)
    • 簡略形です。今回はこれを使います
  • setContentView(View view, ViewGroup.LayoutParams params)

Ref: Android Developer
 

レイアウトのタイプに応じてインスタンス生成、縦横の幅を決めて、EditTextを作ってそのレイアウトに追加します。
 

 

サンプルコード

 
まとめるとこうなります。Button, TextView, EditTextのすべてをコードで記述することになりましたが、基本的には同じことをしています。
 
MainActivity.java

 
EditTextはユーザー操作が絡むので制限を設けたりしないと色々支障が出ます。例えばユーザーがたくさん文字を入力してEditTextの幅を超えてしまうなど…
文字入力の表示制限、あるいは段組みするなどの入力ができるなどの用意をしておく必要があります。

cat48 00 100x100 - [Android] EditText をコードで記述する
EditText は簡単に使えますが、なにも手当しないと、ユーザーがいくらでも文字を入力して、レイアウトが崩れてしまいます。だらだらと入...

 
関連ページ:

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加

 

アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう。

オンラインスクールは色々ありますが、以下の3つはAndroidが学習できる老舗スクールです。


TECH ACADEMY
Androidアプリコース


こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン


とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。


無料で転職まで
これはアプリ限定ではありませんが無料です
その代わり就職することを前提にしたスクールでエンジニアになって職を得たいのであれば手っ取り早いかもしれません




シェアする

  • このエントリーをはてなブックマークに追加

フォローする