如何在 Spinner 中自定义 TextView?

2024-02-28

我有一个带有 ArrayAdapter 的 Spinner,可以将值输入其中。该视图的布局如下所示:

        <TextView
           android:text="Household Income: "
           android:layout_width="wrap_content"
           android:layout_height="fill_parent"
           android:gravity="center_vertical" />

        <Spinner
           android:id="@+id/incomespinner"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:padding="2dip"  />

问题在于文本太渴望视图,结果是一个非常非常难看的旋转器。从截图中可以看出:

alt text
(source: janusz at janusz.de http://janusz.de/~janusz/spinner.png)

我尝试将我自己的 TextView 的 Id 传递到适配器中,但每次应该显示微调器时,我都会收到一个异常,表明我提供的 Id 无效:

04-26 17:38:39.695: ERROR/AndroidRuntime(4276): android.content.res.Resources$NotFoundException: Resource ID #0x7f09003a type #0x12 is not valid

我必须在哪里定义 TextView?在单独的 xml 文件中?有周围的视图组吗?

如果我能看到适配器初始化和文本视图定义的示例,这会对我有很大帮助吗?


重写 Adapter 的 getView 方法来创建自定义列表视图项。

View getView(int position, View  convertView, ViewGroup  parent) {
     TextView tv = null;
     if(covertView instanceof TextView) {
          tv = (TextView) convertView;
     } else {
          tv = new TextView(this);
          tv.setText("Awesome Text");
     }
     return tv;
}

此外,当您创建适配器时,您可以传入用于该项目的布局,因此在这种情况下 ConvertView 将是relativelayout 或 Linearlayout。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Spinner 中自定义 TextView? 的相关文章

随机推荐