长按时进行选择但不显示上下文菜单的编辑文本?

2023-12-21

我想提供剪切、复制文本的自定义处理程序。

长按目标

  1. 上下文菜单不应出现。
  2. 可以使用跟踪器(或拖动器)选择文本。

[UPDATE]

 protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    edittext = (EditText) findViewById(R.id.notetext);
    . . . .

    edittext.setCustomSelectionActionModeCallback(new ActionMode.Callback()
    {
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        public void onDestroyActionMode(ActionMode mode) {
        }

        public boolean onCreateActionMode(ActionMode mode, Menu menu)
        {
            return true;
        }

        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            return false;
        }
    });

  . . . .

}

@Override
public void onSupportActionModeStarted(android.support.v7.view.ActionMode mode) {
    super.onSupportActionModeStarted(mode);
    View v = new View(MainActivity.this);
    mode.setCustomView(v);
    mode.getMenu().clear();
    mode.getMenu().close();
    mode.finish();
}

使用上面的代码我可以删除全选、剪切、复制和粘贴。但它仍然显示“文本选择”

下图显示了所需内容。


你想摆脱 ActionMode 吗?并创建你自己的?

您可以覆盖此设置并在即将显示默认值时收到通知

  @Override
  public void onSupportActionModeStarted(ActionMode mode) {     
    super.onSupportActionModeStarted(mode);
    //you can add your custom ui here
    mode.setCustomView(....);// it takes a view
}

如果你想关闭它然后你打电话mode.finish();如果您不需要它,您可以在那里调用它以关闭或完成它。

当它即将死亡时,它会调用此 onSupportActionModeFinished(ActionMode mode)` 我所说的方法适用于支持库,希望您知道这一点。

剩下的就是奶酪了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

长按时进行选择但不显示上下文菜单的编辑文本? 的相关文章

随机推荐