와 pos의 위치에있는 개체를 업데이트 것이다 UPDAT의 mthod이 있는지 확인 내 행 뷰의 각 컨트롤에 KeyListener 및 OnFocusChangeListener를 추가합니다. 이 두 이벤트는 뷰의 모든 컨트롤을 반복하고 어댑터의 데이터를 현재 값으로 업데이트하기 위해 내 행의 뷰에서 만든 메서드를 호출합니다. notifyDataSetChanged()를 호출하지 않도록해야했습니다. 이 메서드는 프로그래밍 방식으로 데이터 소스 개체를 변경하고 UI에 변경 내용이 반영되도록하는 경우에만 필요합니다.
가장 효율적인 방법은 아니지만 잘 작동합니다.
또 다른주의 사항, 행 추가 및 삭제 내 어댑터보기의 업데이트 제어 및보기 수준 스퀠 치를 설정해야했습니다. 삭제를 위해, 내 행의보기에 긴 클릭 이벤트를 추가하여 삭제 옵션이있는 메뉴를 만들었습니다. 그런 다음 필자는 데이터 소스 개체를 프로그래밍 방식으로 편집하여 지정된 행 데이터를 제거하고 notifyDataSetChanged()를 호출하기 때문에 View 수준에서 업데이트를 스켈링하기 시작했습니다. 그렇지 않으면 OS가 예외를 throw합니다. 스퀠 치는 여기서 내 이벤트를 치지 않고 무한 루프로 들어가고 데이터가 제대로 동기화되는지 확인합니다. 그런 다음 삭제 된 행보기에서 이벤트의 업데이트 어댑터를 스켈치하기 위해 모든 컨트롤을 설정합니다. 삭제 된 행 뷰에 여전히 포커스가 있고 UI에없는 값으로 데이터 원본 개체를 업데이트하지 않기를 원하기 때문입니다. 이 플래그는 내 어댑터의 getView()에서 ListView 재활용 프로세스의 행 뷰를 얻으면 뒤집 힙니다.
새 행을 추가 할 때도 행의보기 수준에서 스퀠 핑해야합니다. 이는 프로그래밍 방식으로 데이터 소스를 새 비어있는 데이터 행으로 변경하고 notifyDataSetChanged를 호출하기 때문입니다. 이유는 삭제와 정확히 같습니다.
ListView에서 값을 어떻게 편집하고 있습니까?일단 데이터 세트를 변경하고 notifyDataSetChanged()를 호출하면 ListView 항목에 데이터를 입력하기 만하면된다. – LeffelMania