[Android] レイアウトファイルを使わないでコードでTextViewを作る

cat42 01 - [Android]  レイアウトファイルを使わないでコードでTextViewを作る
TextView をレイアウトファイルを使わずに記述するやり方です。ダイナミックにテキストを変えたい時にはこれを使わないとできません。

Android Studio 4.1.1
API 30

R904D.P21641J - [Android]  レイアウトファイルを使わないでコードでTextViewを作るimpression?a id=2545321&p id=969&pc id=1263&pl id=47128 - [Android]  レイアウトファイルを使わないでコードでTextViewを作る

TextView

 
TextViewをJavaコードで記述することのメリットは、ダイナミックに変更できる点です。レイアウトXMLファイルは静的なので、一度作成すると変更できません。
 
一方デメリットとしては、コード量が増大しがちでレイアウトファイルのように感覚的に作ることもできません。ただ、レイアウトファイルで作成した後で部分的にコードで変更することは可能です。

なお、ここで紹介するのはLinearLayoutのケースです。ConstraintLayoutはこれよりは多少ややこしくなります。

cat38 00 100x100 - [Android]  レイアウトファイルを使わないでコードでTextViewを作る
TextView を動的にフォントを大きくしたり、位置を変えるなどはコードで記述することで可能です。レイアウトファイルと併用することもで...

 

コード化のポイント

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

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

Ref: Android Developer
 
例としてLinearLayoutを setContentView に設定してみます。

 
このLinearLayoutに入れるTextView のインスタンスを作成します

 
表示するテキストを設定して

 
TestViewの縦横の属性をWRAP_CONTENTとして追加

 
これで出来上がりです

 

サンプルコード

 
プロジェクトを作成しますが、プロジェクトの作り方の説明は「簡単な Button アプリを作る」を見てください
 
デフォルトでファイルが出来上がります。
MainActivity.java
これに以下のように記述していきます。
 
MainActivity.java

 
こんな感じで出来上がりました。
 
textview code 02 - [Android]  レイアウトファイルを使わないでコードでTextViewを作る

 

サンプルコード(修正)

 
テキストフォントが小さく、レイアウトも偏っているので少し手を加えて見た目をよくしましょう。
 
MainActivity.java

 
多少マシになりましたでしょうか。
 
textview code 03 - [Android]  レイアウトファイルを使わないでコードでTextViewを作る
 
 
関連ページ:

 
Reference:
Android Developer

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

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

TECH ACADEMY
Androidアプリコース



Code Camp
現役エンジニアによるオンラインプログラミングスクール【CodeCamp】


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



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


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


シェアする

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

フォローする