将OnItemLongClick侦听器与ListView一起使用

爱德华多

我有一个ListView包含布局文件entry.xml给出的条目,我想将ImageView可见性设置为View.GONE并将其onItemLongClick更改为View.VISIBLEListView长按条目将保持突出显示。

然后我想的添加onClickListenerImageView(而其可见),这样点击的ListView通过点击图片进入能被删除。

条目OnClickListener还需要有一秒钟ListView因此如果长按并突出显示该条目,可以通过(短)单击该条目来撤消。这将恢复ImageViewView.GONE

我怎样才能做到这一点?


listview.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>

</LinearLayout>

entry.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="8dp" >

    <ImageView
        android:id="@+id/entry_deleteicon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:adjustViewBounds="true"
        android:baselineAlignBottom="false"
        android:maxHeight="40dp"
        android:maxWidth="45dp"
        android:src="@drawable/delete"
        android:visibility="gone" />

    <TextView
        android:id="@+id/entry_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:text="text" />
</RelativeLayout>

我的自定义适配器

private class SaveAdapter extends ArrayAdapter<String> {
        private int resourceId;
        private SaveHolder[] holder;

        public SaveAdapter(Context context, int resource) {
            super(context, resource);
            this.resourceId=resource;
            this.holder = new SaveHolder[5];
        }

        @Override
        public int getCount() {
            return 5;
        }

        @Override
        public View getView(final int position, View row, ViewGroup parent) {
            holder[position] = null;
            if(row==null){
                LayoutInflater inflater = getActivity().getLayoutInflater();
                row = inflater.inflate(resourceId, parent, false);

                holder[position] = new SaveHolder();
                holder[position].textName = (TextView) row.findViewById(R.id.entry_name);
                holder[position].iconDelete = (ImageView) row.findViewById(R.id.entry_deleteicon);              
                row.setTag(holder[position]);
            }else{
                holder[position] = (SaveHolder) row.getTag();
            }
            holder[position].textName.setText("name");
            return row;
        }
    }

    static class SaveHolder{
        TextView textName;
        ImageView iconDelete;
    }
Heri.wijoyo

试试这个:

private ImageView tmpImageView;

...

@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long arg3){
    tmpImageView = (ImageView) view.findViewById(R.id.YOUR_IMAGEVIEW_ID);
    tmpImageView.setVisibility(View.VISIBLE);
}

@Override
public void onItemClick(AdapterView<?> adapterView, View view, int arg2, long arg3){
    tmpImageView.setVisibility(View.GONE);
}

...

希望这项工作对您有帮助...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将useEffect与事件侦听器一起使用

ListView onClick侦听器混在一起

无法使更改侦听器与滑块一起使用

将Kotlin协程与Spring Kafka侦听器一起使用

我可以将jQuery .trigger()与addEventListener()添加的事件侦听器一起使用吗?

我可以将SqlDependency与多个侦听器/负载平衡一起使用吗

将 Laravel 事件/侦听器与 Nova 按钮一起使用

返回不同类型的对象时,将访问者或侦听器与ANTLR4一起使用

将事件侦听器与其他类Android的上下文一起使用

如何使CSS滚动捕捉与JS滚动事件侦听器一起使用?

存储事件侦听器无法与对本地存储的任何更新一起使用

JavaScript事件侦听器无法与if语句一起使用

JNativeHook键盘侦听器无法与我的Swing / GUI一起使用

将Foreman与Rails 4和本地调试侦听器一起使用时,服务器没有响应

onItemLongClick 侦听器不起作用

在VueJS 2和JSX中将扩展运算符与事件侦听器一起使用

backref关系中的对称性无法与事件侦听器一起正常工作

非GUI Jmeter与侦听器一起运行

ListView onItemSelected侦听器

将元素从一个侦听器传递到嵌套的侦听器

如何将Picasso与Listview一起使用?

将装饰器与类构造器一起使用

使用Lambda将侦听器添加到ObjectAnimator

可以将expressjs与nodejs net一起使用以侦听TCP协议

删除ListView页脚单击侦听器

将std :: find()与反向迭代器一起使用

如何将hparams与估算器一起使用?

将流畅的界面与构建器模式一起使用

将条带与读卡器一起使用