自定义微调器项目不作为Spinner的一部分出现

时间:2010-11-15 20:43:00

标签: android android-widget

我遇到了一个问题:当我使用一个非平凡类型的Spinner项时,Spinner会在Spinner上显示下拉列表。

(注意:这个描述的大部分内容与https://stackoverflow.com/questions/4188443/android-doesnt-honor-selection-change-with-custom-spinner-items完全相同,但我在这里报告的问题略有不同。我已将它们分开,因此很清楚在哪里引导不同的回复)

我的目标是为微调器中的每个项目设置稍微更精美的显示,因此我开始创建一个包含多个项目的布局,其中一个是目标TextView(在这种情况下为lbl2)

            

然后我尝试设置Spinner(我的最终目标是以编程方式填充微调器,所以我没有使用资源来设置它):

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(
            this, R.layout.spinner_fancy, R.id.lbl2);
    adapter.add("Item #1");
    adapter.add("Item #2");
    adapter.add("Item #3");
    spinner.setAdapter(adapter);

当我运行程序时,它看起来(大部分)都很好 - 实际上,Spinner渲染了每个项目的三个文本视图的看起来很傻的多色垂直布局,它正确地替换了项目#1,项目# 2,项目#3为lbl2。我甚至可以点击微调器和放大器提出选择的下拉列表。

此问题是项目不会显示在微调器上。相反,他们只是漂浮在活动上,更进一步。希望这张图片有助于澄清:Floating Spinner Elements http://www.freeimagehosting.net/uploads/bf9f584156.png

编辑:感谢投票 - 我已经修好了图片,现在它已经内联了!

1 个答案:

答案 0 :(得分:1)

Android Spinners以这种方式工作......项目列表以“对话框模式”显示。

您可以在XML布局中使用此标题在列表中添加标题(在微调部分中):

android:prompt="Select a fancy item..."