Android
 Computer >> コンピューター >  >> プログラミング >> Android

Kotlinでボタンをプログラム的に複数行のレイアウトに追加する方法

Kotlinを使えば、数行のコードでボタンをレイアウトに動的(プログラム上)に1つずつ追加できます。この記事では、その具体的な実装手順をサンプルコード付きでわかりやすく解説します。

手順1:新規プロジェクトの作成

まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成しましょう。

手順2:レイアウトファイル(activity_main.xml)の編集

res/layout/activity_main.xml に以下のコードを記述します。

コード例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:orientation="vertical"
    tools:context=".MainActivity">

手順3:MainActivity.kt の編集

src/MainActivity.kt に以下のコードを記述します。

import android.os.Bundle
import android.view.Gravity
import android.widget.Button
import android.widget.LinearLayout
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        val layout = LinearLayout(this)
        layout.orientation = LinearLayout.VERTICAL
        for (i in 0..2) {
            val row = LinearLayout(this)
            row.layoutParams = LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT
            )
            layout.gravity = Gravity.CENTER
            for (j in 0..3) {
                val btnTag = Button(this)
                btnTag.layoutParams = LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.WRAP_CONTENT,
                    LinearLayout.LayoutParams.MATCH_PARENT
                )
                btnTag.text = "Button " + (j + 1 + i * 4)
                btnTag.id = j + 1 + i * 4
                row.addView(btnTag)
            }
            layout.addView(row)
        }
        setContentView(layout)
    }
}

このコードでは、縦方向の外側LinearLayoutの中に行単位の内側LinearLayoutを生成し、さらにその中に4つのButtonを追加する処理を3回繰り返しています。forループを活用することで、合計12個のボタンを効率よくグリッド状に配置できるのがポイントです。

手順4:AndroidManifest.xml の編集

androidManifest.xml に以下のコードを記述します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.q11">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

アプリの実行と動作確認

それでは、アプリを実行してみましょう。ここでは、実際のAndroidスマートフォンがパソコンに接続されているものとします。Android Studioからアプリを実行するには、プロジェクト内のいずれかのアクティビティファイルを開き、ツールバーにある実行アイコンKotlinでボタンをプログラム的に複数行のレイアウトに追加する方法 をクリックします。選択肢から自分のモバイルデバイスを指定すると、端末の画面にボタンが配置されたアプリが表示されます。

Kotlinでボタンをプログラム的に複数行のレイアウトに追加する方法

  1. Androidでボタンを複数行にわたってプログラムで追加する方法

    この記事では、Androidアプリにおいて、ボタンを複数行(グリッド状)に配置しながらレイアウトへプログラムで追加する方法を解説します。XMLでボタンを1つずつ定義する代わりに、Javaコードのループ処理を使うことで、効率よく動的にUIを生成できます。 手順1:プロジェクトを新規作成する まずAndroid Studioで新しいプロジェクトを作成します。メニューから「File」⇒「New Project」を選択し、必要な項目を入力してプロジェクトを作成しましょう。 手順2:res/layout/activity_main.xml にコードを追加する レイアウトファイルには、縦方向(vertic

  2. KotlinとGlideを使って画像をBitmapとしてダウンロード・表示する方法

    はじめにこの記事では、Androidアプリ開発において、Kotlin言語と画像読み込みライブラリ「Glide」を使用して、ネットワーク上の画像をBitmap形式でダウンロードし、画面に表示する方法を解説します。Glideは画像の非同期読み込みやキャッシュ処理を自動的に行ってくれる強力なライブラリで、CustomTargetを使うことでBitmapオブジェクトを直接取得できます。手順1:新規プロジェクトの作成まず、Android Studioを開き、「File」→「New Project」から新しいプロジェクトを作成します。必要な項目(プロジェクト名、パッケージ名、保存先など)をすべて入力してプ