首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android /更改特定微调器项中的文本

Android /更改特定微调器项中的文本
EN

Stack Overflow用户
提问于 2019-08-29 19:25:28
回答 2查看 597关注 0票数 1

我正在为珠宝店设计一个移动应用程序。在Android中,对于珠宝产品描述页面,我有一个带有一些戒指大小的旋转器,通过使用自定义数组列表适配器将它们的文本5设置为25

我有一个与旋转器一起工作的18 carat22 carat单选按钮组,如果为克拉选择了不同的单选按钮,那么旋转器文本应该只随它一起更改几个环尺寸,例如,如果环尺寸准备发货,则17 - Ships in 24 hours18,如果环尺寸是根据客户的订单新制造的。

为此,如果选择了不同大小的单选按钮,我将创建一个新的数组列表,再次为微调器添加所有新文本,然后再次使用数组适配器。

代码语言:javascript
复制
ArrayAdapter adapter = new ArrayAdapter(Description.this, android.R.layout.simple_spinner_item, sizes);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);

在执行此操作时,微调器会自动默认为第一个项目始终,即使以前选择的微调器项目是(例如)不同克拉单选按钮的17 5

此外,与同一活动中的其他文本视图相对应的其他详细信息,例如价格、折扣、制造费用、黄金重量、交货日期、产品是否准备发货等,都会自动默认为环大小5

那么,如果选择了不同的克拉单选按钮,是否可以通过编程方式更改特定微调器项目的文本?有没有可能在不创建新的数组列表、添加所有新文本并再次使用数组适配器的情况下实现这一点?如果是这样,又是如何做到的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-29 20:25:45

如果sizes为ArrayList,则要更改微调器中的特定项,请尝试使用

代码语言:javascript
复制
sizes.set(index,newItem)

如果您想将第3项更改为10,

代码语言:javascript
复制
sizes.set(2,10) //I am assuming the sizes arraylist is integer arraylist. if not change to required data type

然后执行

代码语言:javascript
复制
adapter.notifyDataSetChanged() // This will refresh you spinner.

而不是重新设置旋转器上的适配器。然后,如果你愿意,执行

代码语言:javascript
复制
s1.setSelection(2)

s1.setAdapter(adapter);应该只执行一次(微调器初始化时)。

代码语言:javascript
复制
public void refreshSpinner(int index,int newValue){ 
    sizes.set(index,newValue);
    adapter.notifyDataSetChanged();

    //Only if you want to select the new value
    s1.setSelection(index);
}
票数 1
EN

Stack Overflow用户

发布于 2019-08-29 19:32:15

尝试下面的代码,

选择索引位置2处的微调器元素(它将从微调器中选择第三个元素/项目)

代码语言:javascript
复制
s1.setSelection(2);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57709133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档