2017-02-21 20 views
2

Как добавить новый параметр контекстного меню ко всем приложениям, которые будут отображаться, когда пользователь выбирает текст и долго нажимает на него?Как добавить новую опцию контекстного меню ко всем приложениям, которые будут отображаться, когда пользователь выбирает текст и долго нажимает на него?

Предположим, я хочу предоставить пользователю возможность находить смысл слова из автономного словаря, не отвлекаясь от контекста своего приложения.

  1. Вообще, чтобы добавить контекстное меню, мы будем делать registerForContextMenu на конкретном объекте TextView. Учитывая, что это должно работать для всех приложений, как мы добавляем параметры контекстного меню?
  2. Как читать выделенный текст?
  3. Как отобразить всплывающее управление поверх открытого приложения?

Я довольно новичок в разработке Android. Поэтому любые подробные ответы или указатели на образцы будут очень полезны. Я предполагаю, что это должно быть возможно, так как приложения «define», «define offline dictionary», похоже, делают что-то близкое к этому, если не точно такое же. В этих приложениях вы можете выбрать текст и нажать на копию, чтобы увидеть смысл текста.

Весь поиск, который я сделал, показал мне примеры того, как визуализировать контекстное меню для текстового представления или как получить выбранный элемент списка в обработчике контекстного меню. Но это не полезно.

Заранее спасибо.

ответ

0

Я думаю, что это может вам помочь, говорит, как создать контекстное меню и получить выделенный текст. с этим нужно просто сделать намерение словарю подачи, что выбранный текст как дополнительный:

https://nitesh.morajkar.com/how-to-select-and-share-text-with-intents-in-android/

И если вы хотите использовать, например, переводчик Google для определений это может помочь:

Android API support dictionary applications

EDIT: после некоторого поиска обоими решения для этого вопроса здесь: https://medium.com/google-developers/custom-text-selection-actions-with-action-process-text-191f792d2999#.h6377bc8j

+0

в ссылке, которую вы предоставили, мы, кажется, б e это: tv = (TextView) findViewById (R.id.textview); tv.setCustomSelectionActionModeCallback (...) Разве это не означает, что мы добавляем контекстное меню только в элемент TextView в нашем приложении? Как это будет работать для всех других приложений? Предположим, я хочу показать новое контекстное меню в Adobe Reader. Это не сработает? – cp1

+0

Я думаю, что вы не можете ..контекстное меню для уникального приложения, которое вы не можете изменить код в других приложениях .. для этого другому приложению нужно было сделать намерение для определенного действия, как в этом случае, когда вы выбираете текст и приложение дескриптор этого действия, который должен искать новое сдерживание. Поэтому я думаю, что вы не можете сделать это в других приложениях. –

+0

То, что вы говорите, кажется правильным. Не имеет смысла расширять возможности в других приложениях, если они явно не позволяют нам это делать. – cp1

 Смежные вопросы

  • Нет связанных вопросов^_^