2011-10-25 3 views
1

다음과 같은 "문제"가 있습니다.Android : 새로운 데이터로 활동을 채우기위한 가장 좋은 방법

저는 특정 gameday에서 몇몇 팀의 순위를 보여주는 활동을 원합니다.

그 때문에 나는 스피너와 TableLayout을 추가 할 것입니다. 첫 번째 시작에서 활동은 실제 gameday의 순위를 보여 주어야하지만 다른 게이 메이드를 선택하면 서가 업데이트되어야합니다.

이 활동을 만드는 가장 좋은 방법은 무엇입니까?

  1. 모든 TableRows 및 TextViews와 전체 ​​TableLayout을 조립 그들에게 ID를 부여하고 런타임시 ID를 통해 그 뷰를 업데이트합니다. 문제 : 거대한 unflexible 하드 layout.xml

  2. 런타임 동안 레이아웃을 조립, 런타임 동안 레이아웃을 조립 IDS

  3. 를 통해 IDS 업데이트를 추가합니다. on update 오래된 뷰를 제거하고 새로운 뷰를 생성합니다.

  4. 런타임 중에 레이아웃을 어셈블합니다. 업데이트시 활동을 다시 시작하십시오.

어느 것이 가장 적합한 지 알기 만하면됩니다. 또는

들으 치타

답변

0

뷰의 수는 변화 하는가를 달성하기 위해 다른 방법은 무엇입니까? 없다면. 가장 좋은 방법은 이미 존재하는 뷰를 사용하여 값을 업데이트하는 것입니다. 비싼 작업이기 때문에 뷰를 재창조/리플레이션하는 것을 피하십시오.

+0

행 수가 최대 8 개이므로 그 수가 적다면 일부 textviews를 비워 둘 수 있다고 가정하면 – Cheetah

1

내가 너라면, 실제로 GridView를 어댑터와 함께 사용할 것입니다. 이것은 레이아웃 변경의 모든 처리를 추상화합니다. 데이터를 적절한 뷰에 매핑하는 것에 대해 걱정할 필요가 있습니다. 이 example은 ImageViews를 GridView에 매핑하지만 GridView에 데이터가 포함 된 TextView에 매핑 할 수있는 이유가 없습니다. 또한 어댑터를 사용하기 때문에 모든 Loader 클래스를 활용할 수 있으며 비동기로드 기능을 제공합니다.

또한이 방법을 사용하면 데이터 집합이 변경 될 때 프로그램을 쉽게 적용 할 수 있습니다. 앞으로 테이블에 더 많은 데이터를 추가 할 수 있습니다.이 방법을 사용하면 XML 레이아웃을 계속 변경하지 않고도 쉽게이 작업을 수행 할 수 있습니다.

+0

+1. 바퀴를 재발 명하지 마십시오. GridView 또는 ListView를 사용하십시오. 안드로이드 문서에 많은 설명서가 있습니다. – ShibbyUK

+0

@ShibbyUK는 나 자신을 더 잘 말하지 못했습니다. 그게 내가 여기서 얻으려고하는거야. 바퀴를 재발 명하지 마십시오. –

관련 문제