- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Carl Bauer (https://github.com/bauerca/drag-sort-listview) 的优秀拖动排序 ListView 来实现启用拖动排序的 ListView 。但是,我的要求是不需要列表上的拖动 handle ,而是允许用户使用项目本身拖动列表项。
通过将 @id/drag 属性设置为列表项本身,我已经让这部分工作了。但是,它具有不响应 itemClick 和 itemLongClick 事件的副作用。
有没有什么方法可以让项目点击/长按在没有单独的可拖动布局的情况下工作?
作为引用,我的代码如下所示 -
ListView .xml:
<com.mobeta.android.dslv.DragSortListView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dslv="http://schemas.android.com/apk/res/com.myproject"
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
dslv:collapsed_height="1dp"
dslv:drag_scroll_start="0.33"
dslv:max_drag_scroll_speed="0.5" />
项目 View .xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="@dimen/list_item_height"
android:orientation="horizontal">
<CheckBox
android:id="@+id/check_box"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"/>
<TextView
android:id="@+id/drag"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:padding="@dimen/list_padding"
android:gravity="center_vertical" />
</LinearLayout>
Activity .java:
DragSortListView listView = (DragSortListView) view.findViewById(R.id.list);
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Toast.makeText(arg0.getContext(), ((TextView)arg1).getText(), Toast.LENGTH_SHORT).show();
return false;
}
});
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listView, View itemView, int index,
long id) {
Toast.makeText(getView().getContext(), ((TextView)itemView).getText(), Toast.LENGTH_SHORT).show();
}
});
作为奖励,如果有人可以帮助启用除单击/长按之外的多选功能,我们将不胜感激。
谢谢!
最佳答案
为了能够在列表中使用 OnItemClick 和 OnItemLongClick,您需要将此参数设置为 com.mobeta.android.dslv.DragSortListView
布局。
dslv:drag_start_mode="onMove"
关于android - 使用拖动排序 ListView (DSLV) 时不会触发 setOnItemLongClickListener 和 setOnItemClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11958125/
我遇到了这个问题,我无法收到此事件,某些东西阻止了我在 listView 中的一个项目,但我不知道是什么,我检查了对设置为 false 的项目的关注,但它没有用。还要检查将项目设置为 onlongcl
我试图让 Spinner 在用户长时间点击某个项目时表现不同。我有一些项目的微调器,我想要两件事。 当用户简单点击一个项目时,我想正常选择它。 当用户长时间点击某个项目时,我想显示对话框,其中包含“编
我在 Android ListView 中有一个消息列表。我想在长按时从列表中删除消息。我已经在列表选择器中声明了所有状态,但仍处于长按状态。长按后,列表中的特定项目不会保持焦点或选中状态。我尝试设置
这是我的代码: clientGridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
我的问题是这样的:当我长按项目时,会出现两个 View 。 请参阅下面我的 java 类代码。请帮忙。 mListView.setOnItemClickListener(new AdapterView
在下面的代码中,onItemLongClick 仅在我注释掉 onTouchListener 时才起作用。我需要能够注册滑动以及长按。我做错了什么? public class MainPageActi
我创建了一个功能,当用户简单地点击该项目时,在点击项目的屏幕上显示 Toast,一个警告: 我的 .ts 文件中的函数: itemSelected(item: string) { this.t
我正在尝试将 OnItemLongClickListener 用于 Android 上的 listView。此代码在添加到 onCreate 方法时工作正常。 mContactList.setOnIt
在 ListView 中,我同时使用了 setOnItemClickListener() 和 setOnItemLongClickListener()。当我点击一个项目时它工作正常但是当我长按一个项目
我希望有人能帮我解决这个问题。我有一个 ListView ,我希望列表的每一行都可以点击并且可以长时间点击。 setOnItemLongClickListener 正在工作,但我无法让该行可点击。我看
我正在使用 Carl Bauer (https://github.com/bauerca/drag-sort-listview) 的优秀拖动排序 ListView 来实现启用拖动排序的 ListVie
我通过扩展 BaseExpandableListAdapter 来填充展开的 ListView 。 ChildView 的代码: public View getChildView(final int
我是一名优秀的程序员,十分优秀!