У меня есть активность со счетчиком, и мне было интересно, можно ли программно закрыть счетчик, если пользователь открыл его.
Вся история в том, что в фоновом режиме я запускаю процесс в отдельном потоке. Когда процесс завершается, я вызываю обработчик для основного действия и, в зависимости от результата, выполняю некоторые задачи. Именно тогда я хочу закрыть счетчик, если пользователь открыл его.
Счетчик находится в макете main.xml:
<Spinner android:id="@+id/birthPlaceSpinner" android:layout_weight="1"
android:layout_height="wrap_content" android:prompt="@string/select"
android:layout_width="fill_parent" />
а это обработчик:
private class BirthplaceChangedHandler extends Handler {
@Override
public void handleMessage(Message msg) {
String placeFilterStr = birthPlaceFilterText.getText().toString();
if ("".equals(placeFilterStr) || placeFilterStr == null || validNewAddresses.isEmpty()) {
birthPlaceSpinner.setEnabled(false);
hideGeoLocationInformation();
} else {
birthPlaceSpinner.setEnabled(true);
}
adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.multiline_spinner_dropdown_item, validNewAddressesStr)
birthPlaceSpinner.setAdapter(adapter);
}
}
Ваше здоровье!
Spinner.onDetachedFromWindow
, сделать его общедоступным и вызвать вручную было единственным способом, который сработал для меня. Я подписался на stackoverflow.com/a/21122845/369317 - person Denis Kniazhev   schedule 14.10.2014