Wie wird die Soft-Tastatur von einem Service angezeigt?

9

Kurze Frage: Ist es möglich (und wie), die Soft-Tastatur von einem Dienst anzuzeigen?

Lange Frage: Ich habe einen Dienst geschrieben, der eine "obere Leiste" erstellt, die über allen Aktivitäten angezeigt wird und einen EditText enthält. Ich möchte die Soft-Tastatur anzeigen, wenn dieser EditText angeklickt wird, aber dies geschieht nicht.

Natürlich habe ich das aus dem Service onFocusChange () und onClick () versucht:

%Vor%

Die von mir vorgeschlagene Problemumgehung besteht darin, die aktuelle Aktivität zum Anzeigen der Tastatur anzufordern, indem Sie die Activity-Klasse erweitern und eine AIDL-Schnittstelle hinzufügen. Der Nachteil ist, dass jedes Schlüsselereignis über eine andere AIDL-Schnittstelle an den Dienst zurückgesendet und manuell in Unicode konvertiert werden muss.

Außerdem, wenn die aktuelle Aktivität einen EditText enthält, funktioniert die Soft-Tastatur nur für die Aktivität und wird nicht mehr angezeigt, wenn der EditText des Dienstes ausgewählt ist.

Was verhindert, dass die Soft-Tastatur des Dienstes angezeigt wird, wenn die aktuelle Aktivität über einen EditText verfügt? Könnte es eine Android-Einschränkung sein?

    
rippeltippel 03.08.2011, 10:47
quelle

2 Antworten

1
___ qstntxt ___

Kurze Frage: Ist es möglich (und wie), die Soft-Tastatur von einem Dienst anzuzeigen?

Lange Frage: Ich habe einen Dienst geschrieben, der eine "obere Leiste" erstellt, die über allen Aktivitäten angezeigt wird und einen EditText enthält. Ich möchte die Soft-Tastatur anzeigen, wenn dieser EditText angeklickt wird, aber dies geschieht nicht.

Natürlich habe ich das aus dem Service onFocusChange () und onClick () versucht:

%Vor%

Die von mir vorgeschlagene Problemumgehung besteht darin, die aktuelle Aktivität zum Anzeigen der Tastatur anzufordern, indem Sie die Activity-Klasse erweitern und eine AIDL-Schnittstelle hinzufügen. Der Nachteil ist, dass jedes Schlüsselereignis über eine andere AIDL-Schnittstelle an den Dienst zurückgesendet und manuell in Unicode konvertiert werden muss.

Außerdem, wenn die aktuelle Aktivität einen EditText enthält, funktioniert die Soft-Tastatur nur für die Aktivität und wird nicht mehr angezeigt, wenn der EditText des Dienstes ausgewählt ist.

Was verhindert, dass die Soft-Tastatur des Dienstes angezeigt wird, wenn die aktuelle Aktivität über einen EditText verfügt? Könnte es eine Android-Einschränkung sein?

    
___ tag123androidlayout ___ Ein Layout definiert die visuelle Struktur für eine Benutzeroberfläche, z. B. die Benutzeroberfläche für ein Aktivitäts-, Fragment- oder App-Widget. ___ qstnhdr ___ Wie wird die Soft-Tastatur von einem Service angezeigt? ___ tag123androidsoftkeyboard ___ Die Standardmethode für die Bildschirmeingabe, die von Android OS bereitgestellt wird. ___ answer3195548 ___

Ich stehe vor einem ähnlichen Problem. Aber in meinem Fall ist das Problem auf die Verwendung des Flags WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE beim Erstellen von WindowManager.LayoutParams für die Ansicht zurückzuführen.

Und für die Sichtbarkeit der Tastatur

%Vor%     
___ answer27740491 ___

Wenn Sie die Soft-Tastatur bei der Berührung von editiertext anzeigen möchten, warum erwägen Sie nicht, onTouchListener mit diesem edittext zu verwenden. Ich glaube, editiertext.requestfocus () wird dies auch tun. Wenn nicht, würde der Zuhörer definitiv arbeiten.

Außerdem wäre es für die von Ihnen erwähnte Art der Ansicht am besten, Fragmente anstelle von Diensten zu verwenden, um eine Ansicht zu erstellen.

    
___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___
Vivek Bansal 24.11.2015 13:57
quelle
0

Wenn Sie die Soft-Tastatur bei der Berührung von editiertext anzeigen möchten, warum erwägen Sie nicht, onTouchListener mit diesem edittext zu verwenden. Ich glaube, editiertext.requestfocus () wird dies auch tun. Wenn nicht, würde der Zuhörer definitiv arbeiten.

Außerdem wäre es für die von Ihnen erwähnte Art der Ansicht am besten, Fragmente anstelle von Diensten zu verwenden, um eine Ansicht zu erstellen.

    
Neha Dhanwani 02.01.2015 10:13
quelle