选择时如何修剪微调器选择?

Posted

技术标签:

【中文标题】选择时如何修剪微调器选择?【英文标题】:How to trim Spinner selection when selected? 【发布时间】:2018-07-10 12:53:20 【问题描述】:

我想修剪用户在 Spinner 中的选择。当用户选择他的国家(例如“+232 塞拉利昂”)时,当项目被选中并且微调器关闭时仅显示“+232”。

提前感谢您的建议。

// I have two arrays of String that i join to make one

String[] phoneCodes ="232", "44", "1";
String[] countries = "Sierra Leone", "United Kingdom", "United States";
String[] phoneCodesCountries = new String[3];


// Here i join those two arrays, for example "+232    Sierra Leone"
for (int i = 0; i < phoneCodes.length; i++) 
    phoneCodesCountries[i] = "+" + phoneCodes[i] + "       " + countries[i];


// Setting the adapter to phoneCodesArray

ArrayAdapter<String> phoneCodesArray = new ArrayAdapter<String>(RegisterActivity.this, android.R.layout.simple_spinner_item, phoneCodesCountries);
phoneCodesArray.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spPhoneCodes.setAdapter(phoneCodesArray);

【问题讨论】:

您找到解决方案了吗? 【参考方案1】:

您可以通过

获得微调器选择
mySpinner.getSelectedItem().toString();

因此,在您的示例中,该值将是 +232 Sierra Leone。现在您可以像这样拆分整个字符串来获取国家/地区代码:

String[] split = mySpinner.getSelectedItem().toString().split("\\+");

现在 split[0] 将得到您想要的结果 +232。

【讨论】:

感谢 Rino,获得选择和拆分对我来说非常清楚。我正在搜索的是当您单击项目“+232 Sierra Leone”以显示在关闭的 Spinner“+232”而不是“+232 Sierra Leone”中时。我想它应该在onItemSelected

以上是关于选择时如何修剪微调器选择?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SimpleAdapter 在微调器中设置选择?

当其他微调器更改时保持微调器选择

当微调器数据来自服务器时,向微调器添加第一个值

如何根据 android studio 中的微调器选择更改 imageview 视图?

带有日期选择器的 Android 微调器,例如 Google 日历应用

如何清除 kivy 中的小部件?