[Android Studio] ListViewで項目を追加・削除する

どうも、tatsuです!

今日は、ListViewで項目を追加・削除する方法を説明します。

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

ListViewで項目を追加・削除する

ListViewで項目を追加・削除するには以下のように記述します。
ポイントは追加・削除等の処理はAdapterに対して行うということです。

activity_main.xml

activity_main.xmlは以下のようにします。

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

MainActivity.java

MainActivity.javaは以下のようにします。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // ListViewに表示する項目を生成
        ArrayList<String> noodleList= new ArrayList<>();
        noodleList.add("そば");
        noodleList.add("うどん");
        noodleList.add("そうめん");
        noodleList.add("パスタ");
        noodleList.add("ラーメン");
        noodleList.add("ペンネ");

        /**
         * Adapterを生成
         * android.R.layout.simple_list_item_1 : リストビュー自身のレイアウト。今回はAndroid標準のレイアウトを使用。
         * noodleList : Adapterのコンストラクタの引数としてListViewに表示する項目のリストを渡す。
         */
        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, noodleList);

        // idがlistのListViewを取得
        ListView listView = (ListView) findViewById(R.id.list);
        listView.setAdapter(arrayAdapter);

        // リスト項目を長押しクリックした時の処理
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
            /**
             * @param parent ListView
             * @param view 選択した項目
             * @param position 選択した項目の添え字
             * @param id 選択した項目のID
             */
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                String deleteItem = (String)((TextView)view).getText();

                // 項目を追加する
                arrayAdapter.add(deleteItem + "を削除");

                // 選択した項目を削除する
                arrayAdapter.remove(deleteItem);
                
                return false;
            }
        });
    }

}

結果

↓「ペンネ」長押しして削除 (「ペンネ」が削除され「ペンネを削除」が追加されています)

コメントを残す

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