chibi
506
2017-11-23 12:10:42
5
567

안드로이드 xml에서 긴 코드는 처리가 안 되나요?


안녕하세요 

안드로이드를 시작해보고자 하는 초보자.. 입니다 

다름이 아니라 아주 간단한 어플을 만들어 보려고 하는데

(es :      | 번호 | 사진 | 이름 | 정보(사진) | 상세설명(링크) |    <---수십 수백개 반복  )

노가다성으로 xml 코드를 적어 봤는데 소스 코드가 일정량이 넘으니까 오류가 납니다.. 

그래서 반복문 처리가 되는지도 찾아 봤는데  xml에선 그것도 안 되는거 같고 


이럴 경우엔 어떻게 처리해야 할까요??  




<ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:ignore="UselessParent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <TextView
                    android:layout_width="30dp"
                    android:layout_height="match_parent"
                    android:text="@string/_1"/>

                <ImageView
                    android:id="@+id/imageView0"
                    android:layout_width="75dp"
                    android:layout_height="75dp"
                    android:background="@drawable/husigidane"
                    tools:ignore="ContentDescription" />


                <TextView
                    android:id="@+id/textView0"
                    android:layout_width="150dp"
                    android:layout_height="match_parent"
                    android:text="이상해씨"
                    tools:ignore="HardcodedText" />
                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="20dp"

                    android:background="@drawable/grass"
                    tools:ignore="ContentDescription" />
                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="20dp"
                    android:background="@drawable/poison"
                    tools:ignore="ContentDescription" />

                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:onClick="onButton1Clicked"
                    android:text="detail"
                    tools:ignore="HardcodedText" />
            </LinearLayout>
</ScrollView>


0
0
  • 답변 5

  • GAN
    1k
    2017-11-23 12:21:09

    RecyclerView 를 사용해서 구현하세요.
    https://developer.android.com/training/material/lists-cards.html

    1
  • OkkyUser
    3k
    2017-11-23 12:23:37

    즉, 저런 레코드를 수 십 개 반복해서 XML 레이아웃에 하드코딩해 넣겠다는 건가요? XML 크기 제한이 있는지는 모르겠지만, 일단 접근 자체가 잘못되었다고 생각합니다. RecyclerView같은 것으로 레코드 하나에 해당하는 XML만 만들고, 데이터는 따로 데이터 XML이나 DB, JSON 파일 등에서 읽어서 런타임에 넣는 방식으로 하셔야 합니다. 

    동적 정보가 아니라 바뀔 일이 없다고 하더라도, 관리 측면에서도, 그렇게 하면 안 됩니다. 나중에 열 정보 바꾸고 싶을 때, 수 백 줄 XML 다 고치실 건가요?

    0
  • chibi
    506
    2017-11-23 12:31:40

    이제 입문 단계라 db 같은걸 사용 하지 않고 원초적으로만 다가가려고 했다가... 감사합니다  더 공부하겠습니다 ㅠㅠ 

    0
  • OkkyUser
    3k
    2017-11-23 12:41:10 작성 2017-11-23 12:42:37 수정됨
    삭제/추가할 가능성 거의 없고, 양이 얼마 안 되면 저도 귀찮아서 DB 안 쓰고 그냥 텍스트 파일에서 로딩하기도 합니다. 어쨌든, 데이터를 UI 자체에 넣는 것은 좋지 않습니다. DB 귀찮으면 그냥 "원초적"으로 텍스트 파일에 한 줄 씩 넣고 read line해서 넣는 방식으로도 할 수 있습니다. RecyclerView 예제는 많으니 구글 검색해 보시면 금방 찾으실 수 있습니다.
    0
  • 톰소여
    1k
    2017-11-23 13:55:19

    json으로 하던지 sqllite를 쓰던지 하세요.

    아니면 rest api 구축해서 json으로 받아서 처리하게끔..

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.