Android微调器关闭

标签 android view spinner handler

我有一个微调器 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/

相关文章:

android - FirebaseCrashlytics : Create report HTTP request failed. okhttp3 超时

javascript - 使用 Javascript 获取内容的高度,移动 Web View

macos - 如何在 Swift 中删除一个 View 的所有 subview ?

Android View 不会变得可见

android - 在 sqlite 中存储微调器的选定值

java - 从 Android 中的 SQL 查询中的 CursorAdapter 支持的 Spinner 获取字符串值

android - 如何在点之间画线并拉动这些点?

Android 应用程序与服务器发布通信

android - 获取用户拍摄的最后一张照片

java - 我正在尝试创建一个动态微调器