마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

동적 레이아웃 생성 및 위젯 생성 질문입니다.

0 추천
안녕하세요. 독학하는 학생입니다.

제가 서버에서 데이터를 받아오고 테이블에 있는 총 row수 만큼 버튼을 동적으로 생성할 생각입니다.

그래서 처음에는 테이블 레이아웃으로 해서 한줄에 4개씩 만들어 줄려고 했는데 좀 까다롭더군요.

그래서 조금이나마 쉽게 하려고 리니어 레이아웃으로 연습을 했는데. 문제가 바로 한줄에 버튼을 4개씩만 놔두려고 하니까 아래처럼 레이아웃이 만들어져야 하잖아요.

리니어 레이아웃(vertical)

     리니어 레이아웃(horizontal)

         버튼

         버튼

         버튼

         버튼

     리니어 레이아웃(horizontal)

         버튼

         버튼

         버튼

         버튼

여기서 궁금한게 row가 20개가 될수도 30개가 될수도있는 상황에서 이름 안겹치게 새로운 리니어레이아웃을 만들 방법이 없나 하고 질문드립니다..

배열을 써서도 못하고..

row를 받아와서

for(int i =0; i<row; i++){

    if(i%4==0){

        새로운 레이아웃

    }

   버튼,버튼,버튼,버튼

   버튼등록

}

이런식으로 하고 싶거든요..근데 이름이 계속 겹치니까 결국 가장 마지막줄 버튼만 남게 되거든요..

이게 테이블레이아웃에서도 TableRow를 만들 때도 같은 상황이 발생할 꺼라 생각합니다.

아니면 좀 더 좋은 방법이 있을까요 Row의 수만큼 버튼을 만드는데 그걸 4열 종대로 나열 할 수 있는 방법요.. 고수님들 부탁드립니다..

그리고 꼭 4열 아니어도 됩니다. 그냥 4열이라 해놓은거지 5열이던 6열이던 상관은 없습니다.
원펀치맨 (2,860 포인트) 님이 2016년 9월 29일 질문

1개의 답변

+1 추천
 
채택된 답변
gridview 를 살펴 보세요

http://devsw.tistory.com/49

굳이 linear 를 써야한다면

row 를 / 4 하면 값이 나올 거고 (10 / 4 = 3 (무조건 올림))

row = 10/4;

for (int i=0; i<row: ++i) {

new LinearLayout

for (int j=0; i<4; ++j) {

new Button

}

}

식으로 처리 되겠죠
aucd29 (218,390 포인트) 님이 2016년 9월 30일 답변
원펀치맨님이 2016년 9월 30일 채택됨
오 감사합니다 이걸로 할 수 있을꺼 같습니다!
...