Android 拖动排序列表视图项单击不起作用

Android 拖动排序列表视图项单击不起作用,android,listview,drag-and-drop,onclick,onitemclicklistener,Android,Listview,Drag And Drop,Onclick,Onitemclicklistener,我使用图书馆。它工作得很好-从我的listview中拖动和删除项目,但我还想单击listview项目。当我设置OnClickListener时,它不起作用。有什么问题吗?对不起,我英语不好 我的片段: 专用DragSortListView listView; 专用适配器; 私人视野; @凌驾 创建视图上的公共视图(布局、充气机、视图组容器、, Bundle savedInstanceState){ MyLog.d(标记“onCreateView”); initAndStartSession(ge

我使用图书馆。它工作得很好-从我的listview中拖动和删除项目,但我还想单击listview项目。当我设置OnClickListener时,它不起作用。有什么问题吗?对不起,我英语不好

我的片段:

专用DragSortListView listView;
专用适配器;
私人视野;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
MyLog.d(标记“onCreateView”);
initAndStartSession(getActivity(),APP_Parameters.BugSense);
视图=充气机。充气(R.layout.fragment\u make\u single\u bet,
货柜(虚假);;
listView=(DragSortListView)view.findViewById(R.id.makeBetList);
setRemovelListener(这个);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
Toast.makeText(getActivity(),“单击:”+位置,Toast.LENGTH\u SHORT.show();
}
});
cursor=dbHelper.getAllBets();
adapter=newmakesinglebetadapter(getActivity(),cursor,3,dbHelper);
setAdapter(适配器);
返回视图;
}
@凌驾
公共无效删除(int-which){
游标游标游标ID=(游标)(listView.getItemAtPosition(which));
String id=cursorId.getString(游标
.getColumnIndex(DBHelper.COL_BET_ID));
dbHelper.deleteBetById(id);
swapCursor(dbHelper.getAllBets());
}
我的XML:


....
....

如果我在我的适配器中添加ClickListener,它可以正常工作,但我无法拖动列表项

请尝试将这些项添加到listview行:

android:focusable="false"
 android:focusableInTouchMode="false"

这对我来说很有效,我一直在点击列表中的项目,它将触动事件,所以我的代码如下。我只想执行Onclick,而不是Ontouch,只是重写该方法,什么也不做

 private DragSortListView list;
 list = view.findViewById(android.R.id.list);
 list.addHeaderView(footerView);
        list.setFocusable(false);
        list.setHeaderDividersEnabled(false);

        list.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                Toast.makeText(getActivity(),"its a touch" , Toast.LENGTH_LONG).show();
                Log.d("stack", "TOUCH EVENT");
                return false;
            }
        });


        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(getActivity(),"Position :"+position+" ListItem : " +id , Toast.LENGTH_LONG).show();
                Log.i("edit recipe click", "clicked");
                EditableIngredient ingredient = (EditableIngredient) parent.getItemAtPosition(position);
                host.handleIngredientSelected(ingredient);
            }
        });

        return view;
    }
私有DragSortListView列表;
list=view.findviewbyd(android.R.id.list);
list.addHeaderView(页脚视图);
list.setFocusable(false);
list.setHeaderDivisEnabled(false);
list.setOnTouchListener(新视图.OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
Toast.makeText(getActivity(),“its a touch”,Toast.LENGTH_LONG.show();
Log.d(“堆栈”、“触摸事件”);
返回false;
}
});
list.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Toast.makeText(getActivity(),“Position:+Position+”列表项:“+id,Toast.LENGTH_LONG).show();
Log.i(“编辑配方单击”,“单击”);
EditableComponent=(EditableComponent)父级.getItemAtPosition(position);
主持人:handleIngredientSelected(成分);
}
});
返回视图;
}
我的Xml看起来像

 <FrameLayout
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <com.mobeta.android.dslv.DragSortListView
                android:id="@android:id/list"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:choiceMode="singleChoice"
                app:drag_handle_id="@id/drag_handle"
                app:float_background_color="@android:color/white"
                 />

        </FrameLayout>


尝试使用onClick而不是OnItemClick。@Aashir E/AndroidRuntime(4833):java.lang.RuntimeException:不要为AdapterView调用setOnClickListener。您可能希望使用setOnItemClickListener,而不是尝试将这些添加到您的listview行:android:focusable=“false”android:focusableInTouchMode=“false”@Aashir是的,现在一切正常。非常感谢。如果你发布这个类似的答案-我会接受它的完美工作,但我如何才能在我的适配器中添加McClickListener?