2014-12-20 1 views
0

문제가 있습니다.Android에서 활동의 목록보기 요소를 사용 중지합니다.

나는 listView를 사용하여 탐색 창을 구현했으며,이 목록보기의 항목을 비활성화하려고합니다. 다른 색상을 사용하고 클릭 할 수 없기 때문에 사용자가 해당 항목을 사용하지 못하도록하고 싶습니다. 문제는 비활성화 된 경우에만 활동을 알 수 있습니다.

버튼의 분명한 예 :

Button but =... 
but.setEnables(false); 

지금 버튼 색상을 변경, 당신이 그것을 클릭 할 수 없습니다.

listView의 요소에 대해 동일한 작업을 수행하려고합니다. 작동하지 않는

nameListView.getChildAt(position).setEnabled(false); 

그러나이 : ​​ 나는 이것을 tryed.

어떻게해야합니까?

감사합니다.

답변

0

어뎁터 사용은 어떻습니까?

nameListView.getAdapter().getItem(position).setEnabled(false); 
+0

감사합니다. @muumuutech 당신이 길을 찾도록 도와주었습니다. – hlastras

0

내 솔루션 :이처럼 탐색 서랍의 항목을 나타내는 클래스에서

, 나는 부울 속성을 추가 테

public class NavDrawerItem { 

    .... 
    private boolean enable; 

    ..... 

    public boolean isEnable() { 
      return enable; 
    } 

    public void setEnable(boolean enable) { 
      this.enable = enable; 
    } 
} 

을 (가능) 그리고 내 어댑터, 오버라이드 (override) 메서드 isEnable (위치) :

@Override 
public boolean isEnabled(int position) { 
    return getItem(position).isEnable(); 
}; 

이제 내 활동에서 탐색 창을 연 상태에서 t 그의 방법

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 

    NavDrawerItem itemToDisable = (NavDrawerItem) mDrawerList.getAdapter().getItem(0); 
    itemToDisable.setEnable(centroComercial!=null); //Condition to disable item 

    return super.onPrepareOptionsMenu(menu); 
} 
이 방법, 시스템 "redrawer"탐색 서랍 전에

, 지금은 항목이 활성화되지 않습니다. 더 유용성을 위해 색상을 변경하지 않는 유일한 것.