사용자가 목록에서 항목의 순서를 변경할 수있는 ListPreference를 찾고있었습니다. 항목은 드래그 가능하며 사용자가 다시 정렬 할 수 있습니다.드래그 가능한 항목으로 ListView를 만드는 방법은 무엇입니까?
QuickPanel의 경우 사용자 지정 ROM에서 이것을 보았습니다 (Cyanogenmod에서 보았습니다). 여기에 스크린 샷을 통해 아이디어를 얻을 수있다 :
나는 정의의 ListView 항목을 확인하고 항목을 드래그 할 수 있음을 나타 내기 위해 아이콘을 설정할 수있는 방법을 알고 있지만, 내가 그들을 드래그 할 수 있도록하는 방법을 모른다 그에 따라 주문을 변경하십시오. 환경 설정에서 그것들을 저장하는 것에 관해서는, 나는 쉽게 구현 될 수있는 this을 발견했다.
PS ...
나는 사이 애 노젠 모드를 알고는 오픈 소스,하지만 난이 특정 일에 대한 소스를 찾을 수 없습니다 :(내가 얻을 수있는 가장 가까운 다른 화면 근처의 어딘가에 있어야한다 this이었다 이에 대한 팁을 사전에감사
UPDATE :. 내가 추가 및 수정을, 허용 대답에서 파일을 사용하여 결국 내가 더 참조를 위해 여기를 나열하고
-
..
이 항목이 드래그 가능한 시각적 피드백 (TextView 근처의 ImageView)을 구현하려면 맞춤형 어댑터 (필자의 경우 ArrayAdapter)를 사용하십시오. 이것은 선택 사항입니다.
DragListener 및 RemoveListener를 설정하여 그에 따라 목록을 업데이트합니다. ListView는 자동으로 그렇게하지 않습니다. 그리고 사용중인 어댑터에 따라 다릅니다.
ViewGroup에보기를 캐스팅 한 줄이 있었는데 약간의 오류가있어서 아무 문제없이 캐스트를 제거 했으므로 필요하지 않았습니다. (onInterceptTouchEvent 메소드에서).
mRemoveMode = 1;
을 TouchInterceptor의 생성자로 변경하거나FLING = 0; SLIDE = 1; TRASH = 2;
중 하나를 변경하십시오. 나는TRASH
, 리소스도 사용할 수 있어야한다고 생각합니다.
실제로 파일은 대답의 링크가 아닌 Cyanogenmod에서 가져 왔지만이 파일은 같았습니다. 그것은 다른 사람을 도움이 나는 희망
- The Preference using this ListView
- The ListActivity with the listeners and the Adapter
- The actual ListView
:
이
은 (글을 쓰는 시점에서, R12에서) 프로젝트의 실제 파일입니다 :)
표준 기능이 없으므로 onTouch를 재정의하고 터치 이벤트를 감지해야합니다. 오버라이드는 longClick 이벤트에 의해 활성화 될 것입니다. 그렇지 않으면 사용자가 항목을 드래그하거나 목록을 스크롤 할 것인지 여부를 알 수 없습니다. – Christine
@Christine [OnDragListener] (http://developer.android.com/reference/android/view/View.OnDragListener.html)를 사용할 수 없습니까? – jadkik94
@ jadkik94 안녕하세요. 이러한 파일을 사용하여 동일한 것을 구현하려고합니다. 그러나 꽤 오래된 질문이기 때문에 드래그 가능 목록을 구현하는 더 편리한 방법이 있다고 생각 하나? 나는 어떤 것도 발견 할 수 없었다. 당신이 줄 수있는 모든 포인터를 주셔서 감사합니다 .. 고마워. – Anjani