浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【android】onItemClickで動的にリストを削除する方法

ListViewを組み立てるときに一緒に使うonItemClick関数ですが、叩く時にアクションを起こす方法は

知っていたのですが決められたリストを削除する方法はまだ調べたことが無く、ついこの間その方法を

見つけたので忘れないうちに収めときます。

以下構文になります。

 


myAdapter = new MyListAdapter(this);
    lv = (ListView) findViewById(android.R.id.list);
    lv.setAdapter(adapter);
    lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> a, View v, int position, long id) {
        final int positionToRemove = position;
                MyObject.remove(positionToRemove);
                myAdapter.notifyDataSetChanged();
        }
    });

onclickで特定のリストを叩くまでは同じなのですが、ここでは第三引数のpositionを一度int変数に格納します。

その後オブジェクト.removeを使い先ほど格納したpositionToRemoveを指定します。

adapter.notifyDataSetChanged();で、リストを更新。リストの値が変更されたことが確認できれば

成功になります。

よく考えたらめっちゃ簡単でしたね・・・。

※notifyDataSetChangedの前にclear()しないとエラーになるみたいですがこちらでは確認できず。

このコードで動作したのでとりあえず間違いではないと思います。

出典↓

notifyDataSetChanged()でListViewが更新されない

  • この記事いいね! (0)