/**
* Calls {@link android.view.Window#getCurrentFocus} on the
* Window of this Activity to return the currently focused view.
*
* @return View The current View with focus or null.
*
* @see #getWindow
* @see android.view.Window#getCurrentFocus
*/publicView getCurrentFocus(){return mWindow !=null? mWindow.getCurrentFocus():null;}
Aus irgendeinem Grund ist die Methode getCurrentFocus () nicht mehr verfügbar. wahrscheinlich ist es schon veraltet, hier die funktionierende Alternative:
Es gibt zwei verschiedene Methoden. getCurrentFocus () ist eine Aktivitätsklassenmethode und getFocusedChild () gehört zur View-Klasse
BoredT
2
@BoredT: getFocusedChild()ist eine Methode auf ViewGroup.
Gnuf
5
Versuchen Sie dies stattdessen, setzen Sie alles in ein threadund drucken Sie die ID und den Klassennamen live aus logcat. Diesen Code einfach in Ihrem setzen Activity, in dem onCreateVerfahren dann schauen Sie in , logcatum zu sehen , was aktuell ist konzentriert.
getCurrentFocus()
, aber nicht so zuverlässig.activity?.currentFocus
Aus der Quelle der Aktivität:
quelle
Aus irgendeinem Grund ist die Methode getCurrentFocus () nicht mehr verfügbar. wahrscheinlich ist es schon veraltet, hier die funktionierende Alternative:
quelle
getFocusedChild()
ist eine Methode aufViewGroup
.Versuchen Sie dies stattdessen, setzen Sie alles in ein
thread
und drucken Sie die ID und den Klassennamen live auslogcat
. Diesen Code einfach in Ihrem setzenActivity
, in demonCreate
Verfahren dann schauen Sie in ,logcat
um zu sehen , was aktuell ist konzentriert.JAVA
KOTLIN
Beachten Sie, dass dieser Thread in einem 100-ms-Zyklus ausgeführt wird, damit die CPU nicht mit unnötiger Arbeit überfüllt wird.
quelle
Wenn Sie sich in einem Fragment befinden, können Sie verwenden
quelle
ViewGroup bietet eine sehr bequeme Methode zum Abrufen eines fokussierten Kindes:
quelle