Androidu přidat položku do globální kontextové nabídky

hlasů
4

Když se dlouhým stisknutím tlačítka na něco v Android kontextové menu přijde. Chci přidat něco k tomuto kontextového menu pro všechny TextViewsv systému.

Například, systém to dělá s Kopírovat a Vložit. Já bych chtěl přidat svůj vlastní, a mít to se objeví v každé aplikaci.

Položena 18/02/2009 v 01:52
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
5

V současné době Android nepodporuje, nemůžete přepsat nebo hák funkce globálně na úrovni systému, aniž by konkrétní činnosti realizujícího záměr nebo činnost, kterou vystavit. Dokonce i v případě, že zveřejněním záměru na tom nezáleží, pokud aplikace běží, je spotřebitel ... a všech aplikací základního systému a samozřejmě všechny aplikace před vy by neměla být bez aktualizace aplikace ke spotřebě.

V podstatě, jak to stojí, to není možné.

Co přesně se snažíte dosáhnout s touto globální kontextové menu, kde jakési globální „hledat“ nebo „Odeslat“ funkce, která vede přes aplikaci?

Odpovězeno 20/02/2009 v 23:18
zdroj uživatelem

hlasů
0

Přidejte záměru filtr v souborovém android-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>

Nechte se zvýrazní uživatelem textem v činnosti vaší aplikace v metodě 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
}

Více informací v článku o médiu .

Díky za uživatele: YungBlade

Mu odpovědět na ru.stackoverflow.com

Odpovězeno 03/01/2019 v 08:58
zdroj uživatelem

hlasů
0

Stiskněte tlačítko Share (strom tři tečky) v rámci menu. Pak byste měli zvolit vlastní aplikaci. Does't práce pro obsah vstupního pole, bohužel.

Odpovězeno 18/11/2017 v 01:55
zdroj uživatelem

hlasů
0

To by mohlo být trochu hacky, ale můžete chytit tlačítka Menu na úrovni / činnosti aplikace, zkontrolujte, zda je váš současný aktivní pohled je textový vstup pohled, a pak budovat a zobrazit svůj vlastní pop-up menu.

Je možné, že je to jen trochu složitější.

Pokud vytvoříte / nafouknout TextView volejte setFocusable (false) na něm, a pak ji nastavit jako aktivní pohledu vaše aktivita bude nadále přijímat klíčové události. Budete muset, aby předal všechny ty události (trackball, touch, klíč) ke svému zobrazení stromu ručně. (Uvnitř vaší funkce „OnKeyDown“ budete muset zavolat na příslušný „OnKeyDown“ metodu pro nejvyšší úrovně View) Můžete efektivně muset pasti pojmu ‚zaměření‘ a rozdělovat ji do správného pohledu sami.

I když trochu ošklivé, může vám požadovaných výsledků.

To by však fungovat pouze ve vlastní aplikaci. Předchozí odpovědi jsou správné o tom, že není možné v rámci celého telefonu.

Odpovězeno 20/02/2009 v 23:12
zdroj uživatelem

hlasů
0

Hmm; Já nevím, jestli je možné rozšířit postaven v typy jako v např. Ruby (můj Java znalost není tak velký).

Nicméně si můžete odvodit svůj vlastní MyTextView z TextView. Pak nahradit všechny své TextViews v rozvržení, jako je tento:

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

na

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

automaticky změnit typ všech těchto oblastech.

Pak budete muset přepsat všechny konstruktérů (zejména TextView(Context context, AttributeSet attrs)).

Po že všechny vzhled hustilky (automatické nebo manuální), budou-li vytvořit tento typ bez starostí.

Pak můžete vytvořit / registrovat zpětná volání kontextového menu, jak budete chtít.

Odpovězeno 18/02/2009 v 10:19
zdroj uživatelem

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