2011-08-26 3 views
0

구분 기호가있는 사용자 지정 ListView를 만들었습니다 (this 자습서 사용). 외모는 잘 보이지만 구분 기호는 클릭 할 수 있고 초점을 맞추고에서 호출 된 컨텍스트 메뉴를 얻을 수 있습니다. 그래서 나는 "닥쳐"라고했습니다.사용자 지정 목록보기 : 구분 항목이 설정을 무시합니다.

... 
case TYPE_SEPARATOR: 
    convertView.setFocusable(false); 
    convertView.setClickable(false); 
    convertView.setLongClickable(false); 
    break; 
     } 

return convertView; 

그러나이 설정은 완전히 무시됩니다! 테스트 목적으로 나는 covertView.setBackground(Color.MAGENTA)을 사용했고 잘 작동합니다. 누구라도 잘못된 생각이 들었나요?

+0

당신은'lstView.setOnItemclickListener()'를 사용하고 있습니까 –

+0

물론 이죠, 이건 문제가 아니에요! 목록 내의 모든 항목을 클릭 할 수 있습니다. 필요한 것은 클릭하고 길게 누르는 것에 응답하는 구분 기호를 제한하는 것입니다. – iDroid

+0

'getView()'내부의'convertView'에'setOnClickListener();'를 할 수 있습니다. –

답변

0

어댑터가 BaseAdapter (예 : ArrayAdapter)를 구현한다고 가정하면 어댑터의 isEnabled() 메서드를 재정의하십시오.

@Override 
public boolean isEnabled(int position) { 
    if (getItemViewType(postion) == TYPE_SEPARATOR) { // method taken from example 
     return false; 
    } 
    return super.isEnabled(position); 
} 

는 항목을 구분하고 있지 않은 추적 ArrayList에 또는 추적 수집의 다른 유형을 유지합니다.

+0

자습서에 지정된 메소드를 사용하도록 코드를 업데이트했습니다. –

관련 문제