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 |