AndroidでRelativeLayoutのビューをプログラムから動的にレイアウトする方法
このチュートリアルでは、Androidアプリ開発において、RelativeLayout内のビュー(View)をXMLレイアウトファイルではなくJavaコードから動的に配置・レイアウトする方法を解説します。サンプルとして、ボタンをコード上で生成し、RelativeLayoutの中央に配置する手順を段階的に紹介します。
ステップ1:新規プロジェクトを作成する
Android Studioを起動し、メニューから「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力し、プロジェクトのセットアップを完了させてください。
ステップ2:activity_main.xmlにコードを追加する
res/layout/activity_main.xml に以下のコードを記述します。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relativelayoutID"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</RelativeLayout>
ステップ3:MainActivity.javaにコードを追加する
src/MainActivity.java に以下のコードを記述します。ポイントは、Buttonインスタンスをコードで生成し、RelativeLayout.LayoutParams を使って「CENTER_IN_PARENT(親の中央に配置)」のルールを設定したうえで、findViewById で取得した RelativeLayout に addView() で追加している点です。さらにクリックリスナーを設定し、タップ時にToastを表示させます。
package com.app.sample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.Toast;
public class MainActivity extends Activity {
RelativeLayout relativelayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button DynamicButton = new Button(MainActivity.this);
relativelayout = (RelativeLayout)findViewById(R.id.relativelayoutID);
LayoutParams layoutparams = new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
layoutparams.addRule(RelativeLayout.CENTER_IN_PARENT);
DynamicButton.setLayoutParams(layoutparams);
DynamicButton.setText("Dynamic Button");
relativelayout.addView(DynamicButton);
DynamicButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Clicked on Dynamic button", Toast.LENGTH_LONG).show();
}
});
}
}
ステップ4:AndroidManifest.xmlにコードを追加する
Manifests/AndroidManifest.xml に以下のコードを記述します。ランチャーからアプリを起動できるよう、intent-filter 内に MAIN アクションと LAUNCHER カテゴリを設定しておきましょう。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.app.sample">
<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からアプリを実行するには、プロジェクト内のいずれかのアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックしてください。デバイス選択画面で接続中のモバイル端末を選択すると、端末の画面に以下のように、コードから動的に生成・中央配置されたボタンが表示されます。

-
AndroidでプログラムからScrollViewを無効化する方法
このチュートリアルでは、AndroidアプリでScrollViewをプログラム的に無効化する方法を解説します。setOnTouchListener()を使ってタッチイベントを横取りすることで、ユーザーによるスクロール操作を防ぐことができます。 ステップ1:新規プロジェクトの作成 まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成してください。 ステップ2:レイアウトファイルの編集(res/layout/activity_main.xml) 以下のコードを res/lay
-
【Android】プログラムでアプリケーションを終了する方法|finish()とSystem.exit(0)の使い方
はじめにこの記事では、Androidアプリをプログラム(コード)から終了させる方法を解説します。ボタンをタップするとアプリが終了するシンプルなサンプルアプリを通じて、実装手順をステップごとに見ていきましょう。ステップ1:新規プロジェクトの作成Android Studioを起動し、「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。ステップ2:レイアウトファイルの編集res/layout/activity_main.xml に以下のコードを追加します。このレイアウトには、ガイダンス用のTextViewと、アプリを終了するためのB