2012-01-24 56 views
0

我在我的程序中的几个地方使用微调,但我会坚持一个案例。纺纱厂没有填充文本

我有两个xml文件 - small_new_systemnew_system。他们都有一个名为state_spinner的微调器。

奇怪的是,当我在使用new_system的运行3.2的平板电脑上使用此代码时,它们显示,但是当我将该应用程序放在运行2.1的手机上时,它使用small_new_system,它们不显示。这些项目位于微调列表中,但没有显示文本。我尝试以不同的方式命名旋转器,以及不使用自定义旋转器布局。

另一个奇怪的是,当我使用相同的布局,这看起来不太好,在小设备上,他们也没有填充文本。

谢谢你的帮助!我的代码如下:

代码填充微调:

states = (Spinner) findViewById(R.id.state_spinner); 
ArrayAdapter<CharSequence> adapter = ArrayAdapter 
    .createFromResource(this, R.array.states, 
      R.layout.spinner_layout); 
adapter.setDropDownViewResource(R.layout.spinner_layout); 
states.setAdapter(adapter); 
states.setOnItemSelectedListener(new MyItemsOnSelectListener());` 

微调在small_new_system:

<Spinner 
    android:id="@+id/state_spinner" 
    android:layout_width="200dp" 
    android:layout_height="55dp" 
    android:layout_below="@+id/city_edit" 
    android:layout_margin="5dp" 
    android:layout_alignParentRight="true" 
    android:inputType="textPersonName" 
    android:textSize="40dp" > 
    </Spinner> 

微调在new_system:在定制微调

<Spinner 
     android:id="@+id/state_spinner" 
     android:layout_width="500dp" 
     android:layout_height="75dp" 
     android:layout_below="@+id/city_edit" 
     android:layout_margin="10dp" 
     android:layout_alignParentRight="true" 
     android:textSize="60dp" > 
</Spinner>` 

代码:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinnerTarget" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:textColor="#00000000" 
    android:textSize="40dp" > 
</TextView>` 
+0

我会张贴图片,但我不允许。 。 。 – Trapshooter161

+0

当我使用Android 3.0及更高版本的仿真器时,spinners似乎正确填充,但不适用于2中的任何操作系统。 – Trapshooter161

回答

0

尝试删除:

android:inputType="textPersonName" 

从small_new_system。然后,它会是什么样子:

<Spinner 
    android:id="@+id/state_spinner" 
    android:layout_width="200dp" 
    android:layout_height="55dp" 
    android:layout_below="@+id/city_edit" 
    android:layout_margin="5dp" 
    android:layout_alignParentRight="true" 
    android:textSize="40dp" > 
</Spinner> 

或者你可以尝试添加背景色:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinnerTarget" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:textColor="#00000000" 
    android:background="#FFFFFFFF" 
    android:textSize="40dp" /> 
+0

这并没有什么区别。微调列表中仍然不包含任何文本,但包含所有行。 – Trapshooter161

+0

尝试添加背景颜色 – CornflakesDK

+0

也没有解决它。我想知道在早期的操作系统中是否支持自定义微调器布局? – Trapshooter161

0

我想出了解决的办法是当使用android.R.layout.simple_dropdown_item我的微调检测到小于11的sdk,当sdk大于11时,使用我的自定义微调器。这似乎工作正常。不是我最喜欢的解决方案,但它确实有效。

0

试试这个..

spnPlan = (Spinner) findViewById(R.id.set_spinner1); 

ArrayAdapter<CharSequence> planAdapter = ArrayAdapter.createFromResource(
       this, R.array.plan_size, android.R.layout.simple_spinner_item); 
       planAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spnPlan.setAdapter(planAdapter); 
     spnPlan.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
+0

这正是我所做的。我已经确定旧的SDK不支持自定义布局。天气不是这样,我不知道。见前面的答案。 – Trapshooter161