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

여러가지 버튼,뷰를 자바에서 배열로 쓰고싶은데 가능할까요?

0 추천

스크롤뷰로 만들었고

이후 내용을 추가할때 현재 만들어진걸 계속 복붙해서 늘려가려고 합니다.

 


public class restaurantActivity extends Activity {
    ArrayList<resInformation> resList = new ArrayList<resInformation>();
 

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_restaurant);
        
        //순서: 이름, 이미지, 별점, 전화번호, 위치, 좌표
        resList.add(new resInformation("낭만짜장","image_2.png", 5.0, "010-0000-0000", "OO동 OO-OO", null));
    }

}


밑줄친 resInformation 클래스는 Get,Set함수와 생성자로,

써야할 이미지,텍스트등을 저장 해두는 클래스입니다.

 

새로운 걸 추가할때마다 XML에 있는걸 복붙해나가면서 계속 늘려나갈 예정인데

모든 버튼과 뷰들을 반복문을 통해 

textview[i]  = resList.get(i).getName();

textview[i+1]

textview[i+2]

textview[i+3]

Imageview[i]

button[i]

button[i+1]

(대충 써둔거라 반복문 중첩을 이용해 잘못된 값이 들어가는걸 방지할 생각입니다.)

 

이렇게 만들고싶은데

뷰나 버튼들을 배열화 하는방법을 모르겠습니다.

혹시 좋은 방법 없을까요?

 

초보배움이 님이 2018년 6월 13일 질문

1개의 답변

0 추천
실행은 안해보고 적어본거라 모르겠지만 아래와 같은 방식을 원하시는것 같습니다...? ㅋㅋㅋㅋ

 

ArrayList<TextView> arr = new ArrayList<>();

LinearLayout layout = findViewById(R.id.----);

int childCount = layout.getChildCount();
for (int i = 0; i < childCount; i++) {
      if(layout.getChildAt(i) instance of TextView) {

            arr.add(layout.getChildAt(i));

      }
}
익명사용자 님이 2018년 6월 13일 답변
저쪽에 사용된 뷰나 버튼들을 각각 배열화해서
for문 돌릴때 사용하고싶은데..
지금 올려주신 거 어떻게 사용하는지 모르겠네요.. ㅠㅠ
...