2015-04-22 17 views
16

Ich versuche, die Softkeyboard zu schließen, die in einer anderen App geöffnet ist. ich versucht, jede Lösung von hier: Programmatically Hide/Show Android Soft Keyboard oder hier: Close/hide the Android Soft KeyboardHide Softkeyboard für Locker App

Wie Sie in den Bildern sehen kann ich die Tastatur schließen müssen von einer anderen Anwendung geöffnet ist, zu manifestieren Zugabe nicht zu tun, um die Tastatur sichtbar machen nicht tat mach den Trick.

Um zu bemerken, dass dies eine Schließfach-App ist, starte ich eine Aktivität, wenn das Telefon in den Schlafmodus wechselt.

Fehle ich etwas? Testen anderer Schließfach Apps aus Speicher und hat dieses Problem

nicht angetroffen Aber hier ist das Ergebnis:

App with opened keyboard My app

Edit: Mehr Infos

Dies ist, wie ich den Schrank zu starten:

if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { 
    //Toast.makeText(context, "" + "screeen off", Toast.LENGTH_SHORT).show(); 

    wasScreenOn = false; 
    Intent intent = new Intent(context, LockScreenActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
    intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 

    context.startActivity(intent); 

    // do whatever you need to do here 
    //wasScreenOn = false; 
} 

Dies ist das Manifest Code:

<activity 
    android:name=".ui.activities.LockScreenActivity" 
    android:excludeFromRecents="true" 
    android:noHistory="true" 
    android:screenOrientation="portrait" 
    android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" 
    android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> 

Antwort

0

Ich endlich das Problem gelöst. So sieht mein Manifest-Code für die Aktivität aus:

<activity 
     android:name=".ui.activities.LockScreenActivity" 
     android:excludeFromRecents="true" 
     android:noHistory="true" 
     android:screenOrientation="portrait" 
     android:windowSoftInputMode="stateHidden" 
     android:configChanges="keyboardHidden" 
     android:launchMode="singleInstance" 
     android:multiprocess="false" 
     android:stateNotNeeded="true" 
     android:taskAffinity="" 
     android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> 
+0

Ich habe versucht, diese, aber keine Wirkung.Lassen Sie mich bitte wissen, wenn muss etwas anderes tun, außer dieser –

+0

@AkarshM Ich arbeitete nicht für mich auch, es funktionierte nur auf einigen Geräten, leider wurde das Projekt angelegt halte, damit ich keine Forschung mehr mache – Tazz

+0

okay, danke Tazz –

4

Try android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" mit android:windowSoftInputMode="stateHidden" Linie in AndroidManifest.xml wie diese als Referenz

<activity 
     android:name=".ui.activities.LockScreenActivity" 
     android:excludeFromRecents="true" 
     android:noHistory="true" 
     android:screenOrientation="portrait" 
     android:windowSoftInputMode="stateHidden" 
     android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> 

ersetzen, können Sie http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

"stateHidden" Das weiche keyb beziehen Oard wird ausgeblendet, wenn der Benutzer die Aktivität auswählt - dh wenn der Benutzer die Aktivität aktiv zu navigiert, anstatt zurück in die Aktivität zu gehen, weil er eine andere Aktivität zurücklässt.

"stateAlwaysHidden" Die Soft-Tastatur ist immer ausgeblendet, wenn das Hauptfenster der Aktivität Eingabefokus hat.

+0

selben Problem :(...Die Tastatur versteckt sich nicht, wenn ich die Tastatur von SMS Composer oder Google Search öffne. In Apps wie WhatsApp versucht, die funktioniert, aber es funktioniert auch mit meiner Lösung :( – Tazz

2

Es erreicht werden kann, in der Aktivität onPause() dieser Aktivität und Verwendung folgenden Code überschreiben als

@Override 
public void onPause() { 
    super.onPause(); 
    if (null != getWindow()){ 
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
    } 
} 
+0

versteckt nicht die Soft-Tastatur – Tazz

1

Versuchen Sie folgendes:

private void hideKeyboard() { 
    // Check if no view has focus: 
    View view = this.getCurrentFocus(); 
    if (view != null) { 
     InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
} 
+0

http://stackoverflow.com/questions/1109022/close-hide-the-android-soft-keyboard/7696791 # 7696791 – bardi

+0

Funktioniert nicht, weil die Ansicht, die den Fokus hat, nicht die Ansicht ist, die das Softkeyboard geöffnet hat. Das Softkeyboard wird in einer anderen App geöffnet. – Tazz

1

auf diese Weise versuchen

InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(
         Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); 

Check this link

+0

Ich habe keinen Bearbeitungstext in meiner Ansicht. Der Bearbeitungstext ist in eine andere App, die unabhängig von meiner App ist – Tazz

+0

Hallo, überprüfen Sie bitte meine bearbeitet ans, fügte einen nützlichen Link hoffe es hilft Ihnen –

+0

wird den Link überprüfen, mit etwas Arbeit stecken geblieben – Tazz

Verwandte Themen