2011-04-06 2 views
3

목록의 각 행에 단추가 들어있는 목록보기가 있습니다. 필드에 따라이 단추를 보이지 않게 만들고 싶습니다.스크롤 목록보기로 인해 단추가 보이지 않습니다.

어댑터 내부의 getView 메소드가 아래에 나와 있습니다.

public View getView(int position, View convertView, ViewGroup parent) { 
       // TODO Auto-generated method stub 

       Activity activity = (Activity) getContext(); 
       View view = convertView; 

       if (convertView == null) { 
        LayoutInflater inflater = activity.getLayoutInflater(); 
        view = inflater.inflate(R.layout.listrow, null); 
       } 

       final Details details = getItem(position); 
       Button btn = (Button) view.findViewById(R.id.btn); 

       if(details.check()) { 
        btn.setVisibility(View.INVISIBLE); 
       } 
    } 

이 페이지를로드하면 데이터가 올바르게 제공됩니다. 그러나이 목록을 단순히 스크롤하면이 단추가 보이지 않게됩니다. 이것에 대한 이유는 무엇입니까? 그 if 섹션을 제거하면 스크롤 한 경우에도 모든 행에 대한 버튼이 표시됩니다. getView() 안에 invisible에게 문제가 있습니까? 회신 해주십시오. 미리 감사드립니다.

답변

2

추가 다음 ...

if(details.check()) { 
    btn.setVisibility(View.INVISIBLE); 
} 
else { 
    btn.setVisibility(View.VISIBLE); 
} 

과 더 나은 목록보기의 클릭 가능한 속성은 XML 또는 같은에서 false로 설정

LayoutInflater.from(getContext()) 

대신 activity.getLayoutInflater()

0

를 사용했다 :

getListView().setClickable(false); 
관련 문제