2011-10-27 2 views
0

ListView (CHOICE_MODE_SINGLE (으)로 설정)가 있습니다 내 ListView를 채우는 SimpleCursorAdapter가 있습니다. 이제는 선택 작업.ListView의 Android 선택 문제

serviceListView.setAdapter(
    new SimpleCursorAdapter(this, R.layout.service_listitem, cursor, new String[] { "name" }, new int[] { R.id.service_name }) { 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      final View renderer = super.getView(position, convertView, parent); 
      if (position == newSelectedPosition) { 
       renderer.setBackgroundResource(R.layout.list_view_layer_list); 
      } else { 
       renderer.setBackgroundResource(android.R.color.transparent); 
      } 
      return renderer; 
     } 
    } 
); 

그래서 레이아웃을 적용 할 때 레이아웃을 선택하고 싶습니다. 이것은 잘 작동합니다. 그러나 몇 가지 경우에 2-3 초 정도 누를 때 조금 끌고 행을 놓으면 선택된 2 행을 얻습니다. OnTouchListener, OnScrollListener, OnLongClickListener를 덮어 쓰는 몇 가지 방법을 시도해보십시오. 결과가 없습니다. 도움을 받으실 수 있습니다. 감사합니다.

답변

0

이 구현을 종료했습니다. 각 행에 대해 TextView-s로 ScrollView를 사용하여 ListView를 "시뮬레이트"하려고합니다.

+0

잘 작동합니다. 동일한 문제가있는 다른 사용자의 경우 ListView를 TextView로 채워진 ScrollView로 바꾸십시오. – tinti

0

선택 항목을 변경 한 후 notifyDataSetChanged()을 어댑터에 시도 했습니까? 이렇게하면 모든 행이 다시 리바운드되고 모든 뷰 (선택한 뷰 제외)가 투명한 배경으로 되돌아갑니다.

+0

도움을 주셔서 감사합니다. 그러나 작동하지 않습니다. 다른 아이디어? – tinti

+0

미안하지만 그게 효과가 있다고 생각했을거야. 나는 같은 위치가 어떻게 두 번 바운드되는지를 볼 수 없다. 손가락을 화면에서 들어 올렸을 때 notifyDataSetChanged를 호출하면 도움이 될지 확실하지 않습니다. 어쩌면 선택한 함수에 일부 로그를 추가하려고 시도 할 수 있으며 바인드 함수가 무슨 일이 일어나는지 볼 수 있습니다. –

관련 문제