2010-06-15 7 views
0

this kind of factory을 사용하여 목록보기에 이러한보기를 추가하려고했지만 ListActivity에보기를 추가 할 때마다 아무 것도 표시되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 내 목록보기를 다음과 같이 설정했습니다.목록보기에 여러보기 추가

List<View> views = new ArrayList<View>(); 
for(int x =0;x<tagg_views.size();x++){ 
     lv.addHeaderView(views.get(x)); 
} 

답변

1

ListView에 x 개의 헤더를 추가하려고합니다. 그건 말이되지 않습니다.

ListView에는 각보기마다 다른 정보가있는 동일한 뷰의 x 개의 복사본이 있어야합니다.

Hello ListView은 ListView의 올바른 사용 예를 보여줍니다.

+0

나는 그것들이 동일한 종류의보기라는 것을 이해한다. listview는 내가보기에 무엇을 제공하는지 알지 못한다. 내가 무슨 뜻인지 아십니까? – hwrdprkns

+0

사실, Hello ListView 예제에서 모든 뷰는 list_item 유형입니다. 당신은 당신의 견해에 무엇이 있는지 말하지 않지만, 그 예를 출발점으로 삼아 list_item을 귀하의 특정한 견해로 대체 할 수 있어야합니다. 너 그거 해봤 니? –

+0

나는 그것을했고 나는 그것을 작동시킬 수 있었다. 당신의 도움을 주셔서 대단히 감사합니다! – hwrdprkns

1

왜 자신이보기에 목록을 추가하고 있습니까? 나는리스트를 위해 어떤 종류의 적절한 것을 사용할 것을 강력히 권할 것이다. Adapter. 사용자가 스크롤하는 동안 어댑터가 뷰 생성 및 리사이클을 처리합니다. 어댑터를 사용하는 경우 뷰 목록에서 뷰를 수행하는 것처럼 직접 뷰에 대한 참조를 저장하는 것은 바람직하지 않습니다.

사용중인 addHeaderView 방법은 목록의 맨 위에 항상 나타나는 하나의 단일 헤더로 구성됩니다. 즉, 루프에서 호출하면 합리적인 결과가 발생하지 않습니다.

예를 들어, helloListView을 보면 안드로이드의 목록이 어떻게 작동하는지 이해하기 위해 Mayra가 언급하고 있습니다. 커스텀 listadapter의 작동 방식을 보려면 tutorial이 잘못된 코드 형식에도 불구하고 유망 해 보입니다.

1

ListView는 어댑터와 연결되어 있습니다. 어댑터는 ListView에 표시되는 데이터를 담당합니다. 내부적으로 ListView는 itmes 풀 (또는 귀하의 경우에 표시 될 수있는 각 유형의 항목에 대한 풀)을 생성합니다.

  • INT의 getItemViewType (INT 위치) : 지정된 대한의 getView (INT,보기, 뷰 그룹)에 의해 만들어집니다보기의 형태를 취득 어댑터는 다음과 같은 방법을 구현해야이를 위해

    목. 따라서 유형을 식별해야합니다.
  • int getViewTypeCount() : getView (int, View, ViewGroup)에 의해 생성 될 뷰 유형의 수를 리턴합니다. 이것은 각 유형의 항목에 대한 풀을 만드는 데 사용됩니다.