2014-11-30 3 views
2

안녕하세요. 나는 ListView을 표시하는 안드로이드 응용 프로그램을 가지고 있습니다. 임의의 행을 클릭하면 다른 모든 행이 회색으로 표시됩니다. 나는 자신의 BaseAdapter과 함께 ListView 커스텀을 사용하고 있으며 getView 함수에서 onclick 함수를 만들 수 있다는 것을 알고있다. 그러나 이렇게하면 기본 활동에있는 onItemClick 기능이 무효화되므로 가능한 내 기본 활동에서이 작업을 수행하려고합니다.Android - 선택된 항목을 제외한 모든 항목의 회색/회색/회색 변경

resultListView.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, 
      int position, long id) { 
     // TODO Auto-generated method stub 
     resultListView.smoothScrollToPositionFromTop(position, 0); 
     resultListView.setClickable(false); 
     resultListView.setScrollContainer(false); 
     resultListView.setEnabled(false); 

     }; 

    }); 
} 

선택한 항목을 제외한 다른 모든 항목을 회색으로 할 수있는 방법이 있나요 : 여기

내가 내 onItemClick 기능을 만들어 어떻게? 알파를 낮추거나 낮추더라도 도움이 될 것입니다. 다른 목록 항목을 클릭 할 수 없다는 인상을 사용자에게주고 싶습니다. 나는 현재 힘든 시간을 알아 내고있다. 어떤 도움이라도 대단히 감사합니다. 감사합니다. 내가 수행하여 알파를 조정할 수 있어요

편집 :

resultListView.setAlpha((float) 0.5); 

그러나, 전체 행에 영향을 미치는 내가 선택한 행의 알파를 조정할 수 없습니다입니다.

답변

0

변수를 저장할 클래스를 만듭니다. 예를 들어 문자열 대신이 클래스를 어댑터에 전달하십시오. 클래스에서 부울 변수 isSelected를 만듭니다. onItemClick()에서 isSelected를 설정하고 isSelected 변수에 따라 getView()에서 뷰를 활성화/비활성화합니다.

+0

특정 항목이 선택되어 있는지 확인하고 부울 변수를 기반으로 배경색/알파를 변경하는 변수/부울을 저장하기 위해 사용자 지정 기본 어댑터에서 사용할 수 있음을 알고 있습니다. 그러나, 내 listview 한 번에 1 만 + 항목을 포함 할 수 있으며 대신 처리 시간을 많이 소비하는 것입니다 그래서 대신보기를 사용하여 리조트 싶었어요. – Razgriz

+0

올바르게 (내가하지 않을 수도 있음) 호출 한 경우 getView() 볼 수없는보기에서 호출되지 않는 방식으로보기를 재활용합니다. – MeetTitan

+0

죄송합니다. 귀하의 설명이 왜 필요한지 알 수 없습니다. 내가 원하는 것은 선택한 항목의 알파를 유지하면서 listView의 알파를 변경하는 것입니다. – Razgriz

관련 문제