\ 最大9.5%ポイントアップ! /

Android Studioでボタン操作とリストビュー連携の実装方法【初心者向け】

入力したテキストをリスト表示!Android Studioでボタン操作

Androidアプリ開発で欠かせないのが、ボタン操作とリストビュー連携の実装です。
この記事では、ボタンを押すと入力された文字列がリストに追加されるアプリを作る方法を、初心者向けに丁寧に解説します🎯

GUI操作だけでなく、Javaでのリスナ実装ListViewとアダプターの使い方も習得できる構成となっています📱✨

🔍 この記事でわかること

  • ボタンリスナの実装方法と構文
  • 入力テキストを取得してListViewに表示する流れ
  • 上書きされないようにリストを保持するコツ
  • XMLレイアウトで必要な部品配置の具体例

アプリ開発の基礎をしっかり身につけたい方は必見!
Android Studio初心者でもすぐ実践できる内容なので、ぜひチャレンジしてみてください✊✨


目次

ボタン操作の基本構造

前回の記事では、ボタンをJavaプログラム(MainActivity.java)と紐づける方法 を解説しました。 今回は、ボタンが押された際の動作(リスナ)を実装 していきます!📌

ボタンのリスナを作成する(MainActivity.java)

以下のコードを追加します🔽public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// ボタンの処理
Button confirmBtn = findViewById(R.id.confirmButton);
// リスナの生成
confirmBtnLister btn_listener = new confirmBtnLister();
// リスナの設定
confirmBtn.setOnClickListener(btn_listener);
}

// ボタンクリック時のリスナクラス
private class confirmBtnLister implements View.OnClickListener {

@Override
public void onClick(View view) {

// 部品の情報を取得
EditText input_text = findViewById(R.id.inputText);
ListView lvOutput = findViewById(R.id.outputList);

// リストの準備
List<String> outputList = new ArrayList<>();
// 入力されたテキストをリストに追加
outputList.add(input_text.getText().toString());

// アダプターの生成
ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, outputList);
// アダプタの設定
lvOutput.setAdapter(adapter);
}
}
}


リスナの作成と実装のポイント

🔹 リスナクラスを作成
private class confirmBtnLister implements View.OnClickListener

implements View.OnClickListener を使い、ボタンが押されたときの処理 を記述します。

🔹 リストビュー(ListView)の設定
ArrayAdapter を使用し、リストデータをリストビューに反映させます。


レイアウトファイル(activity_main.xml)の設定

ボタンを押したときに入力テキストをリストビューへ追加するため、以下の部品を追加します🔽<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<EditText
android:id="@+id/inputText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:inputType="text"
android:textSize="24sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>

<Button
android:id="@+id/confirmButton"
android:text="追加"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
/>

<ListView
android:id="@+id/outputList"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
app:layout_constraintTop_toBottomOf="@+id/confirmButton"
/>
</androidx.constraintlayout.widget.ConstraintLayout>


ボタンが押されたときの処理の流れ

1️⃣ 部品(EditText、ListView)の取得
EditText input_text = findViewById(R.id.inputText);
ListView lvOutput = findViewById(R.id.outputList);

2️⃣ リスト(outputList)の準備と入力値の追加
List<String> outputList = new ArrayList<>();
outputList.add(input_text.getText().toString());

3️⃣ アダプターを作成し、ListViewに適用ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, outputList);
lvOutput.setAdapter(adapter);


改善点と注意点

🛑 現在のコードでは、ボタンを押すたびにリストが上書きされる
🔹 対策outputListMainActivity のメンバ変数として定義すれば、データを保持可能!

修正後のコード例public class MainActivity extends AppCompatActivity {

private List<String> outputList = new ArrayList<>(); // メンバ変数としてリストを保持

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button confirmBtn = findViewById(R.id.confirmButton);
confirmBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText input_text = findViewById(R.id.inputText);
ListView lvOutput = findViewById(R.id.outputList);

// 入力されたテキストをリストに追加
outputList.add(input_text.getText().toString());

// アダプターの生成
ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, outputList);
lvOutput.setAdapter(adapter);
}
});
}
}

これで ボタンを押すたびにリストが増えていく仕様 になります!✅


まとめ

今回は、Android Studioでボタンを押したときにリストビューへ入力データを追加する処理 を実装しました!

ボタンのクリックイベントをリスナで実装
EditTextの入力値を取得し、リストへ追加
ListViewとアダプターを使用し、リストを表示

これをマスターすれば、Androidアプリ開発の基本が身につきます!💡✨


🔗 Android Studioを使った無料アプリ開発完全ガイド👇

あわせて読みたい
Android Studioを使った無料アプリ開発を、ステップ形式でわかりやすく解説 初心者でも無料で挑戦できる!Androidアプリ開発の魅力を解説📱✨ Android Studioを使えば、プログラミング初心者でも無料で本格的なAndroidアプリを作れます。とくに、メ...

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次