Android – フィールドの動的な追加_3

投稿者: | 2018年12月16日

前回までは動的にViewを追加してきましたが、追加したViewを削除する処理も同様に必要です。
今回は、動的に追加するViewの中に”削除”ボタンを追加し、クリックするとViewが削除されるようにしてみましょう。

Viewの削除には、removeViewメソッドを使います。

public void removeClick(View view) {
    View removedView = (View) view.getParent(); // "削除"ボタンの親ビューを取得
    rootView.removeView(removedView);

}

 

ここで定義したremoveClickメソッドをどこでコールするかというと、削除ボタンを定義するレイアウトXMLの中で設定します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="title"
        android:textSize="32dp" />

    <EditText
        android:id="@+id/et_Sub"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="32dp"/>

    <Button
        android:id="@+id/bRemove"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="削除"
        android:onClick="removeClick"/>

</LinearLayout>

 

このように、Buttonタグの属性”onClick”にメソッド名を記述しておくことで、特に他の処理を入れなくとも、そのメソッドが呼ばれるようになります。

 

では処理結果を見てみます。行追加の後、任意の削除ボタンを押すと、

 

ボタンが押された行が削除されます。