Java Android微调器没有显示任何项目,仅显示箭头
嘿,我已经检查了很多关于这个问题的其他问题,但是所有的解决方案都没有帮助。所以我的问题是,我也只看到微调器的箭头,没有显示任何项目。 实际上我有两个微调器,但它们的代码是相同的,所以没有发布另一个。希望有人知道如何解决这个问题。对每一个想法都很好 代码: XML:Java Android微调器没有显示任何项目,仅显示箭头,java,android,xml,kotlin,spinner,Java,Android,Xml,Kotlin,Spinner,嘿,我已经检查了很多关于这个问题的其他问题,但是所有的解决方案都没有帮助。所以我的问题是,我也只看到微调器的箭头,没有显示任何项目。 实际上我有两个微调器,但它们的代码是相同的,所以没有发布另一个。希望有人知道如何解决这个问题。对每一个想法都很好 代码: XML: 现在还有阵列资源: 字节/秒 千字节/秒 兆字节/秒 千兆字节/秒 TerraByte/s 只需在xml中添加条目属性: <Spinner android:id="@+id/speedS
现在还有阵列资源:
字节/秒
千字节/秒
兆字节/秒
千兆字节/秒
TerraByte/s
只需在xml中添加条目属性:
<Spinner
android:id="@+id/speedSpinner"
android:layout_height="0dp"
android:entries="@array/speedByte"
android:layout_columnWeight="1"
android:gravity="fill"
android:layout_row="5"
android:layout_gravity="center"
android:layout_rowWeight="0.3"
/>
在实现您的代码后,我能够看到这些项目。你把字符串数组放在哪里了?它应该在strings.xml文件中
<resources>
<string name="app_name">My Application</string>
<string-array name="speedByte">
<item name="Byte">Byte /s</item>
<item name="Kilo">KiloByte /s</item>
<item name="Mega">MegaByte /s</item>
<item name="Giga">GigaByte /s</item>
<item name="Terra">TerraByte /s</item>
</string-array>
</resources>
我的申请
字节/秒
千字节/秒
兆字节/秒
千兆字节/秒
TerraByte/s
同时增加微调器的高度,使其更易于点击。您的代码似乎正确,对我来说很有用,但在我将
布局高度
更改为包装内容之前,我无法看到微调器。目前它是0dp
我想这就是它不可见的原因
但是如果您仍然面临这个问题,那么我建议您确认执行了以下代码
this.speedSpinner.adapter = speedAdapter
试试这个。它应该可以:
首先获取字符串数组并将其强制转换为列表
String[] speedByte= getResources().getStringArray(R.array.speedByte);
List<String> lstSpeedByte = Arrays.asList(speedByte);
String[]speedByte=getResources().getStringArray(R.array.speedByte);
List lstSpeedByte=Arrays.asList(speedByte);
然后将列表传递给ArrayAdapter:
ArrayAdapter<String> adapterSpinner =
new ArrayAdapter<>(your context, android.R.layout.simple_spinner_item, lstSpeedByte );
speedAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
speedSpinner.setAdapter(adapterSpinner);
ArrayAdapter适配器旋转器=
新的ArrayAdapter(您的上下文,android.R.layout.simple_spinner_项,lstSpeedByte);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
speedSpinner.setAdapter(适配器旋转器);
发布此R.array.speedByte
。我需要对其进行哪些更改?请提供array.xml。我认为您提供阵列的方式有问题。添加阵列文件是否没有错误?你能发布更多的代码,这样我们就可以复制它吗?另一个微调器可以工作?你能试着像这样实例化你的ArrayAdapter吗:@stefanperic很好的建议。同样没有工作,你认为需要更多的代码或其他东西来发现问题吗?只要给我回复,我会运行它我也有它的刺。xml@Schmidi你现在能看到这些项目吗?啊,是包裹内容修复了它,还需要更多的高度,所以必须给它更多的空间,谢谢回答
this.speedSpinner.adapter = speedAdapter
String[] speedByte= getResources().getStringArray(R.array.speedByte);
List<String> lstSpeedByte = Arrays.asList(speedByte);
ArrayAdapter<String> adapterSpinner =
new ArrayAdapter<>(your context, android.R.layout.simple_spinner_item, lstSpeedByte );
speedAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
speedSpinner.setAdapter(adapterSpinner);