728x90
안녕하세요.
오늘은 지난 포스팅에 이어 동적으로 생성한 View를 역순으로 삭제하는 방법에 대해 알아보겠습니다.
https://stickode.tistory.com/500
(해당 포스트와 이어지는 내용입니다. )
역순으로 삭제한다는 의미는 View가 생성될 때 1,2,3 이렇게 생성이 되었다면
삭제될 때는 3,2,1 이렇게 삭제된다는 뜻입니다.
먼저 생성한 View를 삭제하기 위해 View를 생성할 때 각각 View에 id를 할당해 주어야 합니다.
//MainActivity.java
public class MainActivity extends Activity implements View.OnTouchListener {
private final int DYNAMIC_VIEW_ID = 0x8000; // View id를 할당 할 때 View 의 순서와 합쳐져 ID를 선언함.
private void pushButton() {
.
.
.
dynamicButton.setId(DYNAMIC_VIEW_ID + numButton); // 해당 View 의 ID를 선언함.
.
.
.
}
보시는 것과 같이 int형으로 id 변수를 선언하고,
View를 추가하는 시점에서 View의 순서와 합쳐져 view의 ID가 선언되는 것을 확인할 수 있습니다.
이제 View를 삭제해보겠습니다.
View삭제 메소드를 선언합니다.
private void removeButton(){ // View를 삭제하는 메서드
if( numButton <= 0){ // 만약 View가 0개 이하일 때
return;
}
Button dynamicButton = findViewById(DYNAMIC_VIEW_ID + numButton); // 생성했던 View의 ID 가져오기
dynamicLayout.removeView(dynamicButton); // 해당 View를 삭제함
numButton--; // View 삭제 시 View 개수 1씩 감소
}
보시는 것과 같이 View의 개수가 0이하면 return을 해주고,
그게 아니라면 View를 삭제하는 코드가 실행되는 메소드를 선언했습니다.
이제 해당 코드를 실행해 보도록 하겠습니다.
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
보시는 것과 같이 View를 생성, 이동하고 삭제되는 것까지 확인할 수 있습니다.
만약에 특정 View를 선택해서 삭제하고 싶다면 View를 삭제하는 부분의 코드를 활용해서 사용하시면 됩니다.
여기까지 View 동적으로 생성, 드래그 앤 드롭, 삭제까지 구현을 해보았습니다.
궁금하신 점 있으시면 언제든지 댓글 남겨주세요.
감사합니다.
'안드로이드 자바' 카테고리의 다른 글
| [Java][Android] 화면이 회전 되었을 때 이전 액티비티의 데이터 유지하기 (0) | 2022.08.29 |
|---|---|
| [JAVA][Android] ScrollView안에서 드래그 앤 드롭 사용하기 (0) | 2022.08.14 |
| [JAVA][Android] 동적으로 View 여러 개 추가 후 해당 View 드래그 앤 드랍으로 이동시키기 (0) | 2022.07.18 |
| [java][android] 다이얼로그에서 수정한 값 액티비티로 가져오기 (0) | 2022.07.14 |
| [JAVA][Android] xml파일 없이 Java 언어 만을 사용하여 화면 제작 (0) | 2022.07.03 |