Другой подход заключается в создании минимального пользовательского выпадающего элемента счетчика, например:
<com.mypackage.MyTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="25dp"
/>
, а затем перехватить onDetachedFromWindow ():
public class MyTextView extends TextView {
public MyTextView(Context context) {
super(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
// Callback here
}
}
Вы можете уточнить это, если вы используете собственный ArrayAdapter, чтобы установить только один из выпадающих элементов для выполнения обратного вызова, а также настройки
подходящий контекст для обратного вызова и т. д.
В зависимости от того, что вы делаете внутри обратного вызова, вы можете захотеть
опубликуйте его как работоспособный, чтобы очиститель был полностью очищен
прежде чем он что-нибудь сделает.