前回までは動的に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”にメソッド名を記述しておくことで、特に他の処理を入れなくとも、そのメソッドが呼ばれるようになります。
では処理結果を見てみます。行追加の後、任意の削除ボタンを押すと、
ボタンが押された行が削除されます。