2013-11-14 6 views
0

ListView에 하나의 문제가 있습니다. 각 항목에서 동적 TextViews (이미지의 흰색 상자)를 사용하여 목록보기를 생성합니다. ListView는 'Model'클래스의 ArrayAdapter를 사용하여 채워집니다. 일부 항목은 2 개의 흰색 상자를 가질 수 있으며, 일부 항목은 '모델'의 데이터/개수에 따라 더 많은 항목을 가질 수 있습니다. 또한 ViewHolder 패턴을 사용하고 있으며 목록 항목의 다른 상태를 유지 관리 할 수 ​​있습니다. 그러나이 상자는 getView() 메소드에서 동적으로 추가됩니다.Android- 동적 콘텐츠가있는 ListView 항목

그래서 내 질문은 ViewHolder 또는 ListView를 스크롤 할 때 다른 방법을 사용하여 이러한 동적으로 추가 된 TextViews의 상태를 유지하는 방법입니다.

enter image description here

+0

일부 코드를 표시하십시오 – Neil

+0

누군가가 당신을 도울 수 있도록 몇 가지 코드를 공유하십시오 .. !! – Piyush

+0

Btw, 문제가 해결되었습니다. 내 모델이 행의 상자 수에 대한 잘못된 정보를 저장하고 있습니다. 나는 그것을 바로 잡았고 문제는 해결되었다. – rohit

답변

0

나는 스크롤에 헤아 렸어요 상자의 변화를 추측하지만 상자는 목록 항목에 alloted 될 헤아 렸어요 당신은 동적해야합니까?

해결 방법 :

  1. 정수 배열에 목록 항목에서 상자 헤아 렸어요 크기 (즉)을 설정합니다. (예 : size [position] = 5).
  2. 목록 어댑터 또는 기본 어댑터가 목록 항목을로드하기 전에 크기를 설정해야합니다.
  3. 는 이제 기본 어댑터의 getView(), 오른쪽 코드의 끝에서 나는 동적 목록에서 같은 문제가 없었다

    for(int i = 0; i< size[position]; i++){ 
    //generate textview i.e white boxes here 
    
    } 
    

아래에 주어진이 문제를 해결했다.

여전히 문제가있는 경우 친절하게 여기에 코드를 게시하십시오.

0

ui에서 입력 한 데이터의 내용을 저장할 목록 또는 일부 데이터 구조가 필요합니다 (예 : SparseArray<ModelUI>). ModelUI 클래스에는 동적 텍스트 상자의 텍스트를 저장할 문자열 속성이 있어야합니다.

또한 여기에서는 두 개의 인덱스 (모델 개체 목록의 실제 인덱스 인 SparseArray의 인덱스/키 하나와 Listview에 표시되는 항목의 인덱스)를 처리해야한다는 점을 고려해야합니다.

100 개의 항목 목록이 있다고 가정 해 봅시다. 목록보기에는 항상 10이 표시됩니다. 항상 listView에서 firstVisibleIndex를 참조해야합니다.

정확하게 이해하면 텍스트 상자를 편집하고 50 개의 항목을 스크롤하고 편집 된 항목으로 다시 스크롤하여 텍스트 상자에 올바른 텍스트를 표시하고 싶습니다.

관련 문제