当前位置: 首页 > 知识库问答 >
问题:

ActionMode与嵌入在ViewPager中的listview一起无法正常工作

鲜于璞瑜
2023-03-14

我的片段包含一个viewpager,它包含一个listView

此listView行在左侧显示一个缩略图,在右侧显示一些文本。就像gmail应用一样,当我按下缩略图时,我希望它切换到ActionMode。按下其他位置时,将打开与按下的特定行相关的不同活动。这部分工作正常。

viewHolder.getImage().setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(final View v) {
                documentFragments.setActionMode(true);
            }
        });
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public void setActionMode(final boolean enabled) {
    if (enabled && this.actionModeEnabled) {
        return;
    }

    if (!enabled && !this.actionModeEnabled) {
        return;
    }

    this.currentAdapter.setActionModeEnabled(enabled);
    if (enabled) {
        this.listView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
        this.listView.startActionMode(new ActionMode.Callback() {

            @Override
            public boolean onPrepareActionMode(final ActionMode mode, final Menu menu) {
                return false;
            }

                @Override
                public void onDestroyActionMode(ActionMode mode) {
SOME CODE

                }

                @Override
            public boolean onCreateActionMode(final ActionMode mode, final Menu menu) {
                mode.setTitle(getActivity().getString(R.string.selectDocuments));
                getActivity().getMenuInflater().inflate(R.menu.documents_action_menu, menu);

                // force the checkbox display
                DocumentsFragment.this.currentAdapter.notifyDataSetChanged();
                return true;
            }

                @Override
                public boolean onActionItemClicked(final ActionMode mode, final MenuItem item) {
 SOME CODE
                }
            });
    } else {
        this.listView.setChoiceMode(AbsListView.CHOICE_MODE_NONE);
    }
    this.actionModeEnabled = enabled;
}
private void initControls() {
    this.listView = (ListView) this.view.findViewById(android.R.id.list);

    registerForContextMenu(this.listView);
    this.listView.setOnItemClickListener(this);
}

    @Override
    public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id) {
        if (this.actionModeEnabled) {
            final boolean isChecked = this.listView.isItemChecked(position);
 DO SOMETHING
        } else {
 DO SOMETHING
        }
    }

当不在actionMode中时,调用onItemClick,但一旦在actionMode中,就不再调用了...

在操作模式下,如何接收一行已被点击的信息?

共有1个答案

嵇财
2023-03-14

我用CheckedTextView替换了行布局中的复选框,现在一切正常。

 类似资料:
  • 我对scrollview和GeometryReader有一些问题。我想要一张图片下的物品清单。每个项目都应该有以下宽度和高度: 我为我的用例尝试了两种方法。这是我的第一个代码结构: 我正在使用几何体读取器来获取VStack的宽度,因为它有一个填充,我不想获得滚动视图的全宽。 但对于GeometryReader,UI上只显示ForEach循环中的最后一项。而GeometryReader只有很小的高度

  • 问题内容: 在我编写的flask应用程序中,我使用了一个外部库,该库可以使用环境变量进行配置。注意:我自己编写了这个外部库。因此,如有必要,我可以进行更改。从命令行运行时,运行带有以下内容的烧瓶服务器: 一切都如预期。但将它部署到Apache后,用它不工作了。事实上,打印出到(所以它在Apache日志中显示出来显示,该wsgi过程似乎是在一个非常不同的环境(一个,好像是这样了。其实,它指向我的发展

  • 我的discord机器人发送了错误的嵌入消息。这是一个拥抱命令,如果某人没有提及某人,机器人会在频道中发送一条错误消息,内容如下:请提及有效用户!我想以嵌入方式发送此消息,但它无法正常工作。每次我使用命令时,没有提到任何人,我的控制台中都不会出现错误。当我提到某人时,它是有效的,但它也会发送错误信息。以下是一个截图:https://i.imgur.com/bcnS1Yb.png 我的代码: 请帮帮

  • 问题内容: 我构建了一个PyQt5 GUI来进行一些selenium测试。除PyQt进度条外,其他所有操作均按预期进行。 在下面的第一个示例中,当我使用Selenium浏览器时,最后,当浏览器关闭时,进度条只会跳到100%。但是,selenium工作正常。 但是,在下面的此版本中,在Selenium浏览器被注释掉的情况下,进度条可以按预期工作。 问题答案: 阻塞任务与在其中执行GUI的事件循环不友

  • 问题内容: 尽管我很确定这是昨天或前一天工作的,例如,在IE10中不再起作用。我已经测试了我的浏览器,但是它不再起作用了。还有谁有相同的问题吗?或者,它永远都行不通吗? 问题答案: IE不支持输入type =“ number”,但您可以使用jQueryUISpinner小部件。它非常易于使用,并且具有许多对开发人员友好的API。

  • 以下结构(在中)不允许我在模块中导入类: 顶层的为空。以下是剩余的文件: a b: 在Windows上,如果我尝试运行(从文件夹中)而不做任何其他操作,我会得到以下错误: 如果我在顶层添加一个: 包含 并运行(从内),我得到同样的错误。 如果我将更改为 然后运行(从文件夹中)或(从)中,我得到了 python文档让我觉得我应该能够做到这一点! 有人能解释一下我为什么会犯这些错误吗?我看到过几篇类似