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

【Android】クリック操作でListViewのアイテムを動的に更新・削除する方法

このチュートリアルでは、AndroidのListViewにおいて、アイテムをクリックした際にその内容を動的に更新・削除する方法を、サンプルコードとともにわかりやすく解説します。

手順1:新規プロジェクトの作成

Android Studioを起動し、メニューから「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力し、プロジェクトのセットアップを完了させてください。

手順2:レイアウトファイルの作成

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

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

上記のコードでは、画面にListViewを配置しています。

手順3:MainActivity.java の実装

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

package com.example.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
    TextView textView;
    ArrayAdapter<String> adapter = null;
    String[] arry;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView view = findViewById(R.id.list);
        adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, getStringArrayList());
        view.setAdapter(adapter);
        view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                arry[position] = String.valueOf(100);
                adapter.notifyDataSetChanged();
            }
        });
    }
    private String[] getStringArrayList() {
        arry = new String[10];
        for(int i = 0; i < 10; i++) {
            arry[i] = String.valueOf(i);
        }
        return arry;
    }
}

このコードでは、ArrayAdapterを使用して「0」から「9」までの数値をListViewに表示しています。アイテムがクリックされると、onItemClick() メソッド内で該当位置の値を「100」に変更し、notifyDataSetChanged() を呼び出すことで、画面表示が即座に更新されます。

補足:アイテムを完全に削除したい場合

固定長のString配列では要素そのものを取り除くことができません。クリックしたアイテムをリストから完全に削除したい場合は、データソースとして ArrayList<String> を使用し、list.remove(position) を呼び出した後に notifyDataSetChanged() を実行することで実現できます。

アプリの実行

それではアプリを実行してみましょう。ここでは、実際のAndroid端末をパソコンに接続しているものとして説明を進めます。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックしてください。ドロップダウンから自分のモバイルデバイスを選択すると、端末に次のような初期画面が表示されます。

【Android】クリック操作でListViewのアイテムを動的に更新・削除する方法

続いて、リスト内の任意のアイテムをクリックしてみてください。以下のように、クリックしたアイテムの値が「100」に更新されます。

【Android】クリック操作でListViewのアイテムを動的に更新・削除する方法

  1. Androidからマルウェアを削除する方法|感染の兆候と予防策を徹底解説

    現代社会において、スマートフォンは生活に欠かせない存在となっています。銀行アプリ、ナビゲーションアプリ、各種ユーティリティアプリなど、個人の重要な情報や機能がほぼすべて詰まっています。だからこそ、プライバシーを守るためにも、スマートフォンをしっかりと保護することが何よりも重要です。パソコンと同様に、Androidスマートフォンもウイルス、トロイの木馬、スパイウェア、アドウェアなどの悪意あるプログラム(マルウェア)に感染する可能性があります。Androidマルウェアの主な目的は、機密情報の窃取、無関係な広告の表示によるユーザーの誤誘導、悪質なサイトへのリダイレクトなどです。マルウェアはさまざまな

  2. Androidスマホからウイルス・マルウェアを削除する方法|症状別の対処法を徹底解説

    近年、Androidユーザーは急速に増加し、かつてWindowsパソコンでしか使えなかった機能がスマートフォンの世界にも広がりました。インターネットへの即時アクセスやオンラインアプリなど革新的な機能を手軽に楽しめる一方で、ウイルスやマルウェアの脅威も同時に拡大しています。「良いものには必ず影がある」という言葉の通り、高度化するAndroidデバイスの影こそがウイルスなのです。これらの厄介な存在はOS全体に悪影響を及ぼし、スマートフォンを台無しにしてしまいます。もしスマホがマルウェア攻撃の被害に遭っているなら、この記事を読んでAndroid端末からウイルスを取り除き、ウイルスによるポップアップ