문제

ListView 및 버튼에 대한 활동이 있습니다 - "모두 지우기"및 "확인"."모두 지우기" 버튼을 누르면 체크된 항목 상태가 지워집니다. 정상적으로 작동합니다.

m_list.setItemChecked(pos, false); 

onItemClick에서 복잡한 비즈니스 로직에 따라 항목 상태를 변경하거나 선택됨 <-> 선택 취소됨/을 시도하고 있습니다.버스 라인 계층은 둘 이상의 품목에 대해 확인했거나 확인하지 않음을 결정합니다.나는 같은 코드를 시도하고 있습니다 :

m_list.setItemChecked(position, bCheck); 

그것은 작동하지 않습니다.뒤에 있는 데이터는 보기만 변경되지 않습니다.

"모두 지우기" 코드:

@Override
public void onClick(View v)
{
    if (v == m_map)
        GoToMap();
    else if (v == m_clear)
    {
        for (int i=0; i < m_poiCategories.size();i++)
        m_list.setItemChecked(pos, false);
    }
}

이 코드는 작동하지 않습니다:

m_list.setOnItemClickListener(new OnItemClickListener()
    {
    @Override
    public void onItemClick(AdapterView<?> listView, View selectedItem, int position, long itemId)
    {
        boolean b = true;
        ....
        m_list.setItemChecked(position, b);
    }
});
도움이 되었습니까?

해결책

당신이 함께 일하고 있다면 ListView그보다 notifyDataSetChanged() 데이터가 변경되면 UI 스레드에서 호출됩니다.이렇게 하면 UI가 업데이트됩니다. getView() 표시되는 항목 수에 따라 여러 번.

당신의 getView() 제대로 구현되었습니다.

참고로 다음을 보고 이해하는 것이 좋습니다. http://www.youtube.com/watch?v=wDBM6wVEO70

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top