ListViewで各行に削除ボタンを設置して、削除ボタンクリックで当該行を削除する。
※iOSでよくあるやつ。
ListAdapterの中でボタンにonClickListenerをセットしてもListViewを再描画する方法がわからなかったので。
ListViewのレイアウトXMLでボタンのonClickにメソッドを指定。
1 2 3 4 5 6 |
<Button android:id="@+id/btnDelete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClickDelete" android:text="delete" /> |
ListAdapterのgetView中でボタンのタグにpositionをセット
1 2 3 4 5 |
public View getView(int position, View convertView, ViewGroup parent) { Button btnDelete = (Button) convertView.findViewById(R.id.btnDelete); btnDelete.setTag(position); : } |
ActivityにXMLで定義したメソッドを実装。引数のViewからgetTag()でpositionを取得して、あとはごにょごにょ。
1 2 3 4 |
public void onClickDelete(View v){ //ListAdapterでセットしたpositionが取得できる int position= (Integer)v.getTag(); } |
※ListAdapterでボタンにonClickListenerをセットするとXMLで指定したメソッドは実行されないので注意。