入力したテキストをリスト表示!Android Studioでボタン操作
Androidアプリ開発で欠かせないのが、ボタン操作とリストビュー連携の実装です。
この記事では、ボタンを押すと入力された文字列がリストに追加されるアプリを作る方法を、初心者向けに丁寧に解説します🎯
GUI操作だけでなく、Javaでのリスナ実装やListViewとアダプターの使い方も習得できる構成となっています📱✨
🔍 この記事でわかること
- ボタンリスナの実装方法と構文
- 入力テキストを取得してListViewに表示する流れ
- 上書きされないようにリストを保持するコツ
- XMLレイアウトで必要な部品配置の具体例
ボタン操作の基本構造
前回の記事では、ボタンを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);
改善点と注意点
🛑 現在のコードでは、ボタンを押すたびにリストが上書きされる
🔹 対策 → outputList
を MainActivity
のメンバ変数として定義すれば、データを保持可能!
修正後のコード例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 Studioを使った無料アプリ開発完全ガイド👇
