Android добавить элемент для глобального контекстного меню

голоса
4

При длительном нажатии на что - то в Android, контекстное меню появляется. Я хочу добавить что - то в этом контекстное меню для всех TextViewsв системе.

Например, система делает это с копированием и вставкой. Я хотел бы добавить мои собственные, и он появится в каждом приложении.

Задан 18/02/2009 в 01:52
источник пользователем
На других языках...                            


5 ответов

голоса
5

На данный момент Android не поддерживает это, вы не можете изменить или повесьте функциональность глобально на уровне системы без определенной деятельности, реализующей намерения или действия, которые вы разоблачить. Даже в случае публикации намерения это не имеет значения, если приложение работает не является потребителем ... и все базовые системные приложения и очевидно все приложения предыдущих к вашему не будет без обновления приложения, чтобы потреблять.

В принципе, как он стоит, это не представляется возможным.

Что именно вы пытаетесь достичь с помощью этого глобального контекстного меню какого-то глобального «Поиск» или «Отправить» функциональность, которая проходит через ваше приложение?

Ответил 20/02/2009 в 23:18
источник пользователем

голоса
0

Добавить пристальный фильтр в файловом андроида-Manifest.xml:

<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>

Получить подсвечивается текст пользователя в деятельности вашего приложение в методе OnCreate ():

  @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
}

Более подробная информация в статье о среде .

Спасибо пользователю: YungBlade

Ему ответить на ru.stackoverflow.com

Ответил 03/01/2019 в 08:58
источник пользователем

голоса
0

Нажмите кнопку Share (дерево из трех точек) в пределах меню выбора. Затем вы должны выбрать собственное приложение. Does't работы для содержания поля ввода, к сожалению.

Ответил 18/11/2017 в 01:55
источник пользователем

голоса
0

Это может быть немного Hacky, но вы можете ловушку клавиши меню на уровне / активности приложений, проверьте, чтобы увидеть, если ваш текущий активного вид вида ввода текста, а затем построить и вывести собственное меню настраиваемых всплывающего.

Вполне возможно, это просто немного сложнее.

Если вы создаете / надуть TextView, вызовите setFocusable (ложь) на нем, а затем установить его в качестве активного вида вашей деятельности будет по- прежнему получать ключевые события. Вы должны направить все эти события (трекбол, сенсорный, ключ) для вашего View дерева вручную. (Внутри вашей функции «OnKeyDown» Вы должны были бы вызвать соответствующий «OnKeyDown» метод для верхнего уровня View) Вы должны эффективно ловушку понятия «фокуса» и раздавать его на правильный взгляд самостоятельно.

Хотя немного некрасиво, он может дать вам желаемые результаты.

Это, однако, работать только в своем собственном приложении. Предыдущие ответы правильны про то, что невозможно по всему телефону.

Ответил 20/02/2009 в 23:12
источник пользователем

голоса
0

Хмм; Я не знаю, если вы можете расширить встроенные типы, как, например, в. Ruby (мой Java знание не столь велика).

Однако вы можете получить свой собственный MyTextView из TextView. Затем заменить все ваши TextViews в макетах, как это:

<TextView android:id="@+id/TextView01" />

в

<com.mydomain.mypackage.MyTextView android:id="@+id/TextView01" />

автоматически изменить тип всех этих полей.

Тогда вам необходимо изменить все конструкторы (особенно TextView(Context context, AttributeSet attrs)).

После этого все inflaters макета (автоматические или ручные) будет создавать этот тип без суеты.

Тогда вы можете создать / зарегистрировать функции обратного вызова контекстного меню, как вы хотите.

Ответил 18/02/2009 в 10:19
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more