[Android] Button 配列を設定する

cat41 01 - [Android] Button 配列を設定する
Buttonやテキストなどを複数配置するようなレイアウト、ListViewでも可能ですが、配列を使ってfor文で一気に作ることもできます。レイアウトファイルにちまちま書かずに tag をセットして作りましょう。

Android Studio 4.1
API 30

R904D.P21641J - [Android] Button 配列を設定するimpression?a id=2545321&p id=969&pc id=1263&pl id=47128 - [Android] Button 配列を設定する

Button array

 
配列としてそれぞれのButtonを複数作成するだけであれば簡単ですが、それぞれのButtonがタップされた時の設定はどうすればいいでしょう。

ボタンタップで受け取る時のIDを考えないといけないですね。

結局レイアウトファイルから
button[0] = findViewById(R.id.button_0) ;
button[1] = findViewById(R.id.button_1) ;

ではいまいちです。レイアウトファイルではなくコードで書きましょう。

また、ボタンのクリックリスナーもfor文で作成すると、どのボタンがタップされたかわからないといけません。

ボタンのIDを呼び出す方法ももありますが、IDは自動で作成されるものです。直観的で分かりやす方がいいと思います。

setTag(Object tag), getTag()を使うとIDを使わずにできます
とは言っても実のところどうしてもTagを使う必要があるのかと疑問もあります

Tags can also be used to store data within a view without resorting to another data structure. The specified key should be an id declared in the resources of the application to ensure it is unique (see the ID resource type).

View – Android Developers

ViewにTagでマーキングするとしがらみがなく使えるということでしょうか。
たとえば100m競争でゼッケン16番の選手の記録という方が、名前を桐生xxxというより簡単でいいわけですね。
 

 

setTag(), getTag()

 
とりあえず作ってみたいと思います。
ボタンにsetTag(“1”)を設定

view.getTag()で取り出す

 
ボタンを配列で作成し、こういう形でtagを付けて後でタップで取り出せるようにします。

 

サンプルコード

 
以上を使って、ボタンアレーをコードで作ってみます。

MainActivity.java

 

 
 
Ref:
public void setTag (Object tag)
public Object getTag ()
 
関連ページ:

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

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

TECH ACADEMY
Androidアプリコース



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


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



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


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


シェアする

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

フォローする