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

Textview得自定义选择对话框[已关闭]

单品
2023-03-14

我想要2列图标

共有1个答案

陶朝明
2023-03-14

请查看此链接https://stackoverflow.com/a/13004720/7764939

我只是把它的内容粘贴到这里:

TextView(因此也包括EditText)有一个方法SetCustomSelectionActionModeCallback(),应该使用该方法来代替StartActionMode()。使用此功能可以自定义TextView用于文本选择的菜单。示例代码:

bodyView.setCustomSelectionActionModeCallback(new StyleCallback());
class StyleCallback implements ActionMode.Callback {

    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        Log.d(TAG, "onCreateActionMode");
        MenuInflater inflater = mode.getMenuInflater();
        inflater.inflate(R.menu.style, menu);
        menu.removeItem(android.R.id.selectAll);
        return true;
    }

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

    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        Log.d(TAG, String.format("onActionItemClicked item=%s/%d", item.toString(), item.getItemId()));
        CharacterStyle cs;
        int start = bodyView.getSelectionStart();
        int end = bodyView.getSelectionEnd();
        SpannableStringBuilder ssb = new SpannableStringBuilder(bodyView.getText());

        switch(item.getItemId()) {

        case R.id.bold:
            cs = new StyleSpan(Typeface.BOLD);
            ssb.setSpan(cs, start, end, 1);
            bodyView.setText(ssb);
            return true;

        case R.id.italic:
            cs = new StyleSpan(Typeface.ITALIC);
            ssb.setSpan(cs, start, end, 1);
            bodyView.setText(ssb);
            return true;

        case R.id.underline:
            cs = new UnderlineSpan();
            ssb.setSpan(cs, start, end, 1);
            bodyView.setText(ssb);
            return true;
        }
        return false;
    }

    public void onDestroyActionMode(ActionMode mode) {
    }
}
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/italic"
          android:showAsAction="always"
          android:icon="@drawable/italic"
          android:title="Italic"/>
    <item android:id="@+id/bold"
          android:showAsAction="always"
          android:icon="@drawable/bold"
          android:title="Bold"/>
    <item android:id="@+id/underline"
          android:showAsAction="always"
          android:icon="@drawable/underline"
          android:title="Underline"/>
</menu>
 类似资料:
  • 我想要一个日期选择器只显示月份和年份。我已经定制了日期选择器来这样做,即,从选择器中移除“Day”字段,但在Android中,Lollipop得到的选择器有Day、Month和year。下面是我的一段代码。请帮我弄清楚问题所在。提前道谢。

  • 我正在尝试创建一个框,其中包含标题、正文(消息)、确定选项。 我如何将它们逐行分开(我的意思是由三部分的行分开)? 这是我正在使用的代码:

  • 本文向大家介绍Android 自定义对话框 showSetPwdDialog,包括了Android 自定义对话框 showSetPwdDialog的使用技巧和注意事项,需要的朋友参考一下 样式如下所示: 布局: layout   dialog_set_pwd.xml 状态选择器: drawable   btn_blue_selector.xml   btn_white_selector.xml 引

  • 本文向大家介绍Android自定义等待对话框,包括了Android自定义等待对话框的使用技巧和注意事项,需要的朋友参考一下 最近,看了好多的APP的等待对话框,发现自己的太lower,于是就研究了一番,最后经过苦心努力,实现一个。 自定义一个LoadingIndicatorView(extends View )类 编写values/attrs.xml,在其中编写styleable和item等标签元

  • 我想在我的编码中添加对话框。对话框可以弹出。假设用户按下ok按钮后对话框将关闭,但对话框将自动关闭。这是我的密码。有什么问题吗?

  • 我们可以覆盖页面离开确认对话框与自定义设计的对话框,如jquery UI对话框? 我试图将其实现为: var warning=true; var v_leavemsg=“确实要离开页面吗?”;Window.OnBeforeUnload=ConfirmExit; 函数confirmExit(){ if(warning){ //custom dialog函数调用 f_customdialog(v_le