如何将一个项目添加到文本选择弹出菜单?

12

当用户选择一些文本(在EditTextWebView等内部)时,会出现一个浮动文本选择弹出窗口,应用程序可以在其中添加自定义项目。请问有人能给我一个例子,如何向此弹出菜单添加一个项目,使其启动一个意图,并将所选的String传递给我的活动。

输入图像描述

1个回答

17

这篇博客教程将会向你展示如何:https://medium.com/google-developers/custom-text-selection-actions-with-action-process-text-191f792d2999

基本上,在你的Manifest文件中,为将处理从弹出菜单共享的文本的活动添加PROCESS_TEXT intent filter

<activity
    android:name=".ProcessTextActivity"
    android:label="@string/process_text_action_name">
  <intent-filter>
    <action android:name="android.intent.action.PROCESS_TEXT" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />
  </intent-filter>
</activity>

然后,您将在Activity中处理该文本,如下所示
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.process_text_main);
  CharSequence text = getIntent()
      .getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT);
  // process the text
}

文本选择的上下文菜单是操作系统本身的功能还是其他什么东西?它可以被包含EditText的应用程序修改吗? - android developer
你的方法很有效,但我正在使用带有片段的导航组件,现在我只有一个活动。我需要在浮动文本选择菜单中添加多个选项。如何处理这个问题,因为我不想创建空活动? - xaif
但是我该如何在Jetpack Compose中使用它呢?我尝试创建一个继承ComponentActivity的活动类,但它只会显示一个白屏。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接