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

AndroidでListViewを作成する方法を徹底解説!初心者向けサンプルコード付きガイド


ListViewとは?

ListViewは、ArrayListや配列、データベースなどから取得したデータのコレクションを縦方向に一覧表示する、Androidの標準UIコンポーネントです。表示されたリストは上下にスクロールでき、任意の項目をタップして操作することも可能です。連絡先一覧や設定メニューなど、数多くのアプリで活用される非常に基本的なウィジェットといえます。

本記事では、Android Studioを使ってシンプルなListViewを作成し、項目のクリックイベントを処理するまでの流れを、ステップごとにサンプルコード付きでわかりやすく解説します。

手順1:新規プロジェクトを作成する

Android Studioを起動し、「File」→「New Project」を選択します。必要な情報をすべて入力して、新しいプロジェクトを作成してください。

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

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

<?xml version = "1.0" encoding = "utf-8"?>
<android.support.constraint.ConstraintLayout
   xmlns:android = "https://schemas.android.com/apk/res/android"
xmlns:tools = "https://schemas.android.com/tools" android:layout_width = "match_parent"
   android:layout_height = "match_parent">
<LinearLayout
   android:layout_width = "match_parent"
   android:layout_height = "match_parent"
   android:orientation = "vertical">
   <ListView
      android:id = "@+id/list"
      android:layout_width = "wrap_content"
      android:layout_height = "wrap_content"/>
</LinearLayout>
</android.support.constraint.ConstraintLayout>

上記の activity_main.xml では、LinearLayoutの中にListViewを1つ配置しています。idに「list」という名前を付けており、これによりJavaコード側から参照できるようになります。

手順3:MainActivity.java を編集する

src/MainActivity.java に以下のコードを追加します。

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      final ListView list = findViewById(R.id.list);
      ArrayList<String> arrayList = new ArrayList<>();
      arrayList.add("JAVA");
      arrayList.add("ANDROID");
      arrayList.add("C Language");
      arrayList.add("CPP Language");
      arrayList.add("Go Language");
      arrayList.add("AVN SYSTEMS");
      ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,                   android.R.layout.simple_list_item_1, arrayList);
      list.setAdapter(arrayAdapter);
      list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String clickedItem=(String) list.getItemAtPosition(position);
            Toast.makeText(MainActivity.this,clickedItem,Toast.LENGTH_LONG).show();
         }
      });
   }
}

MainActivityでは、表示したいリスト項目をArrayListに格納し、それをArrayAdapterを通じてListViewにセットしています。

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
list.setAdapter(arrayAdapter);

ここで指定している android.R.layout.simple_list_item_1 は、Androidが標準で提供するシンプルなテキスト行用レイアウトです。独自デザインの行を使いたい場合は、カスタムレイアウトに差し替えることもできます。

次に、リスト項目がタップされたときにその項目名を表示するため、OnItemClickListenerを設定します。

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
      String clickedItem = (String) list.getItemAtPosition(position);
      Toast.makeText(MainActivity.this,clickedItem,Toast.LENGTH_LONG).show();
   }
});

タップされた項目は getItemAtPosition() メソッドで取得し、Toast(トースト通知)として画面下部に一定時間表示しています。

なお、マニフェストファイル(AndroidManifest.xml)の変更は一切不要です。

アプリを実行してみよう

それでは、作成したアプリを実際に動かしてみましょう。あらかじめ実機のAndroidスマートフォンをPCに接続しておいてください。Android Studioでプロジェクト内のいずれかのアクティビティファイルを開き、ツールバーの「Run(実行)」アイコンをクリックします。デバイス選択ダイアログで接続済みのモバイル端末を選ぶと、端末に以下のようなリスト画面が表示されます。

AndroidでListViewを作成する方法を徹底解説!初心者向けサンプルコード付きガイド

続いて、リスト内の任意の項目をタップしてみてください。タップした項目名が、以下のようにToastで表示されます。

AndroidでListViewを作成する方法を徹底解説!初心者向けサンプルコード付きガイド

補足:AndroidXへの対応について

本記事のコードで使用されている「android.support」系ライブラリは現在非推奨となっており、新しいプロジェクトではAndroidXが標準採用されています。AndroidX環境では、レイアウトのConstraintLayout宣言を androidx.constraintlayout.widget.ConstraintLayout に、AppCompatActivityのインポート文を androidx.appcompat.app.AppCompatActivity にそれぞれ置き換えれば同じように動作します。また、ListViewはRecyclerViewの登場後も引き続き利用できますが、大量のデータを扱う場合や複雑なレイアウトを実現したい場合は、RecyclerViewの採用も検討するとよいでしょう。

  1. 【Android開発】連絡先から電話をかけるアプリの作り方を徹底解説

    はじめにこの記事では、Androidアプリから直接電話をかける機能を実装する方法を、ステップごとにわかりやすく解説します。デバイス内の連絡先を読み込み、リスト形式で表示し、タップした相手に発信できるシンプルなサンプルアプリを作成していきましょう。電話発信には ACTION_CALL インテントを使用し、連絡先の読み取りや発信に必要なパーミッション(権限)のリクエスト処理もあわせて実装します。ステップ1:新規プロジェクトの作成まずはAndroid Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な情報を入力してプロジェクトを作成して

  2. 【Android】ListViewにフッターを追加する方法をステップごとに解説

    このチュートリアルでは、AndroidのListViewにフッター(Footer)を追加する方法を、実際のサンプルコードとともにわかりやすく解説します。リストの末尾に「リストの終わり」などの補足情報を表示したい場合に役立つテクニックです。 ステップ 1:新規プロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成しましょう。 ステップ 2:activity_main.xml にコードを追加する res/layout/activity_main.xml