[Android Studio] ListViewの複数項目の各値を取得する

どうも、tatsuです!

今日は、ListViewの複数項目の各値を取得する方法を説明します。

※この記事で使用しているAndroid Studioのバージョンは2.3.3です。

ListViewの複数項目の各値を取得する

ListViewの各行のレイアウトは、Android標準のものだったりオリジナルで作ったものが使用できます。
そこでListViewの各行をクリックした時に、行のレイアウトに含まれる各ウィジェットの値を取得したい場合があるかと思います。
今回は、以下のようなレイアウトを使用した場合の値取得方法をご紹介します。

レイアウトxmlファイル

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
 
        <TextView
            android:id="@+id/mainText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="メインテキスト"
            android:textSize="30sp"/>
 
        <TextView
            android:id="@+id/subText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="サブテキスト"
            android:textSize="20sp"
            android:paddingLeft="20dp"/>
    </LinearLayout>

ActivityファイルのListViewクリックイベント部分

    // リスト項目をクリックした時の処理
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            /**
             * @param parent ListView
             * @param view 選択した項目
             * @param position 選択した項目の添え字
             * @param id 選択した項目のID
             */
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // 選択されたビューを取得
                LinearLayout linear = (LinearLayout)view;
                // LinearLayoutの中からidで目的のウィジェットを取得する
                TextView main = (TextView)linear.findViewById(R.id.mainText);
                TextView sub = (TextView)linear.findViewById(R.id.subText);
                // あとは値を取得する
            }
        });

まとめ

どうでしたか?
ListViewの複数項目の各値を取得するには、まずレイアウト全体を取得し、そこからidで検索するといったやり方で実現できました。
それではまた!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です