我有一个微调器 Activity ,我想知道如果用户打开了微调器,是否可以通过编程方式关闭它。
整个故事是,在后台我在一个单独的线程上运行一个进程。流程完成后,我在主要 Activity 上调用处理程序,并根据结果执行一些任务。那时我想关闭微调器,如果用户打开了它。
微调器位于 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);
}
}
干杯!
最佳答案
public static void hideSpinnerDropDown(Spinner spinner) {
try {
Method method = Spinner.class.getDeclaredMethod("onDetachedFromWindow");
method.setAccessible(true);
method.invoke(spinner);
} catch (Exception e) {
e.printStackTrace();
}
}
关于Android微调器关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7287195/