android - 如何自定义 Spinner 中的 TextView?

标签 android layout spinner

我有一个带有 ArrayAdapter 的微调器,可以将值输入其中。此 View 的布局如下所示:

        <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"  />

问题是文本对 View 来说太长了,结果是一个非常非常难看的微调器。从截图中可以看出:

alt text
(来源:janusz at janusz.de)

我试图将我自己的 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 文件中?有一个周围的 View 组?

如果我能看到适配器初始化和 TextView 定义的示例,对我有很大帮助吗?

最佳答案

重写 Adapter 的 getView 方法以创建自定义 ListView 项。

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。

关于android - 如何自定义 Spinner 中的 TextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2714880/

相关文章:

android - 如何使用 JSON Web 服务填充 Android 微调器?

android - 如何在 Kotlin 中为环境设置不同的常量

SwiftUI 内容在较小的 iPhone 屏幕上被截断

css - fieldset 不遵循其父项的高度

python - 如何将微调器值设置为等于 kivy 中 python 方法的输出列表

android - 如何从 Kotlin 中的 MultiSelectSpinner 获取逗号分隔的项目 ID

android - 如何使 ScrollView 中的某些小部件像标题一样不可滚动或粘在屏幕顶部

java - Android 从 SettingsActivity 中删除类别而不会使应用程序崩溃?

java - 从字符串数组创建 Android 位置

xml - Magento 继承和重用模板变量