通过程序修改android Spinner子视图



使用最新的Android API(在本文发布时为19),我正在尝试将基本Spinner的各个子项作为TextViews。

在我的片段的onCreateView方法中,我引用了微调器:

final Spinner spinner = (Spinner) view.findViewById(R.id.icon_spinner);

(在片段中看起来像这样):

<Spinner android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:id="@+id/icon_spinner"
         android:layout_below="@+id/button_check_in"
         android:layout_centerHorizontal="true"
         android:layout_marginTop="32dp"
         android:spinnerMode="dialog"
         android:entries="@array/marker_names" />

然而,在片段的onCreateView中调用spinner.getChildCount()会返回0。微调器适配器由值填充,微调器在应用程序中运行良好,因此必须在以后的某个时间填充子视图。

我什么时候才能获得微调器的子视图,或者如果我做错了该怎么做

在阅读了更多文档后,我意识到微调器不会直接存储其子视图。相反,必须通过SpinnerAdaptergetDropDownView方法来访问它们。

例如。

spinner.getAdapter().getDropDownView(id, null, null);

最新更新