如何在Spinner Widget中显示自己的视图而不是文本视图?

时间:2010-03-16 10:13:21

标签: android layout view spinner

我可以使用微调器小部件选择一些项目。微调器将加载一个简单的Textview并显示该项目的名称 可以定义一个自己的视图来显示微调器行内部吗?我怀疑它类似于自定义列行。

我只想在列表中的每个项目的微调器文本中显示一个单独的图标。

2 个答案:

答案 0 :(得分:3)

是的,您可以这样做 - 您可能知道,Spinner是一种AdapterView,这意味着您可以调整自己的数据以便在View中显示。< / p>

该方法与ListView的方法非常相似。 摘自ApiDemos:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, INTERPOLATORS);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);

您可以定义自己的布局并将其传递给您使用的SpinnerAdapter子类。

答案 1 :(得分:1)

是的,这很容易。

主要的是,将TextView定义为布局文件中的根元素。
请按以下步骤操作:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, INTERPOLATORS);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);


simple_spinner_dropdown_item.xml档案:

<?xml version="1.0" encoding="utf-8"?>
<TextView>
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="50px"
    android:textColor="#000000"
    android:textSize="20px"
    android:gravity="center_vertical" >
</TextView>