我有一个带有 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 来说太长了,结果是一个非常非常难看的微调器。从截图中可以看出:
(来源: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/