Rah*_*hul 10 android textview android-edittext android-actionbar contextual-action-bar
有没有办法在按钮单击时以编程方式启动与文本视图关联的上下文操作栏?它应该包含复制/全选的默认选项.基本上,我想在我的文本视图中显示选择句柄,并在按钮单击(而不是长按/双击)中显示操作栏中的android默认复制/全选选项.
到目前为止我尝试过:尝试使用setCustomActionModeCallback()api,但问题是,用户需要长按/双击文本视图才能显示CAB.尝试使用startActionMode()api,但找不到保留默认项的方法..它只是打开一个新的空CAB ..我知道,我可以添加我的自定义副本 - 选择所有代码并使用这个空的CAB,但是我想使用默认的Android提供的,而不是自己管理它.
编辑; 我不能使用EditText.视图只需要是TextView,长按将被禁用.我通过将TextView设置为可选来执行上述所有更改
手动选择文本,然后长按:
textView.post(new Runnable() {
@Override
public void run() {
Selection.selectAll((Spannable) tv.getText());
tv.performLongClick();
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:
问题在于内置文本选择 CAB 是私有的并且使用多个私有类。您需要复制大量代码或通过反射访问一堆方法才能使用它。
您可以制作自己的 CAB 菜单,但您还需要控制器句柄,这又是大量代码。
一个简单的解决方案是接受你所拥有的并使用我上面建议的方法。如果您想避免调用长按监听器,您可以在呼叫出租车时将其删除:
Selection.selectAll((Spannable) tv.getText());
tv.setOnLongClickListener(null);
tv.performLongClick();
tv.setOnLongClickListener(mLongClickListener);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1114 次 |
| 最近记录: |