1

我基本上想要类似于 Twitter 或 Pocket 应用程序的东西,您在列表视图中长按一个项目,它为您提供一组选项,通过更改该项目的布局来执行该项目,以显示一组按钮。

ListView lv= getListView();
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

    @Override
    public boolean onItemLongClick(AdapterView<?> av, View v,
            int pos, long id) {
        // TODO Auto-generated method stub
        Context ctx = getApplicationContext();
        mDbHelper.deleteNotes(id);
        fillData();
        Toast.makeText(ctx, "Long Clicked at" + id, Toast.LENGTH_SHORT).show();
        return false;
    }       
});

我的长点击代码在这里。知道我只是直接删除了长按的项目,但是我希望用户在长按一个项目时看到 3-4 个按钮来代替所述项目。

有谁知道该怎么做?

编辑这是推特图片:

在此处输入图像描述

4

1 回答 1

0

您可以做的是,当用户长按时,只需在您的适配器内,隐藏或显示一个,例如,包含所有按钮的 LinearLayout 等等。

确保您展示的这个元素适合自己低于或高于所有其他常用元素。

你明白我想说的吗?霍拉,如果您需要更多信息。

更新 1

好的,所以在回复您的评论时,您不需要创建单独的 xml 文件等。例如,请参阅此,

您的自定义行 xml 有两种布局:

相对布局主视图

相对布局额外视图

在您的行中,xml 有一个额外的布局(我的偏好是相对的,无论如何这取决于您),并将此布局设置为低于主要内容(确保它们都适合行)。因此,在这种情况下,mainView 是您始终想要显示的内容的布局,而 extraView 是您仅在长按时才想要的内容。确保 extraView 的默认可见性设置设置为 GONE

然后,只需长按,特定行 extraView.setVisibility(View.VISIBLE);

当不再长按时,显然反之亦然。

如果您感到困惑,请联系我,并为非格式化回复道歉,因为我目前正在通勤并通过手机回复,将在电脑上格式化答案。

于 2013-03-30T19:57:07.900 回答