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()しないとエラーになるみたいですがこちらでは確認できず。
このコードで動作したのでとりあえず間違いではないと思います。
出典↓