1

며칠 전 놀라운 프로젝트 인 https://github.com/commonsguy/cwac-merge을 발견했습니다.cwac-merge 어댑터 비활성화

일부 어댑터를 사용하지 않도록 설정하려고합니다 (헤더처럼 클릭 할 수 없음).

추가 정보에 내가 읽을 수 있습니다

또한,)의 IsEnabled를 (대체 할 MergeAdapter을 확장 할 수 있도록 할 수 있습니다 위치가 있고 사용할 수 없습니다 제어 할 수 있습니다.

하지만 어떻게 할 수 있습니까? 즉 소스의 IsEnabled 방법 :

  adapter.addView(header("Header1"),false); 
      SimpleAdapter test = new SimpleAdapter(Test.this, top, R.layout.main, 
        new String[] { ITEM_TITLE2, ITEM_CAPTION2, ITEM_TITLE3 }, new int[] { R.id.id1, R.id.id2, R.id.id3 }); 
      adapter.addAdapter(test1); 

답변

1

단계 # 1 : SimpleAdapter의 사용자 정의 서브 클래스를 작성

@Override 
    public boolean isEnabled(int position) { 
    for (ListAdapter piece : pieces) { 
     int size=piece.getCount(); 

     if (position<size) { 
     return(piece.isEnabled(position)); 
     } 

     position-=size; 
    } 

    return(false); 
    } 

이 내 어댑터의 추가 코드입니다.

2 단계 : 사용자 정의 하위 클래스에서 isEnabled()을 무시하고 필요에 따라 truefalse을 반환합니다.

README에서 혼란스러운 언어에 대해 사과드립니다. 곧 알려 드리겠습니다.

+0

와우, 그것이 얼마나 쉬운 지 믿을 수 없다. 고마워. 공장! – sztembi