我正在为珠宝店设计一个移动应用程序。在Android中,对于珠宝产品描述页面,我有一个带有一些戒指大小的旋转器,通过使用自定义数组列表适配器将它们的文本5设置为25。
我有一个与旋转器一起工作的18 carat或22 carat单选按钮组,如果为克拉选择了不同的单选按钮,那么旋转器文本应该只随它一起更改几个环尺寸,例如,如果环尺寸准备发货,则17 - Ships in 24 hours和18,如果环尺寸是根据客户的订单新制造的。
为此,如果选择了不同大小的单选按钮,我将创建一个新的数组列表,再次为微调器添加所有新文本,然后再次使用数组适配器。
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。
那么,如果选择了不同的克拉单选按钮,是否可以通过编程方式更改特定微调器项目的文本?有没有可能在不创建新的数组列表、添加所有新文本并再次使用数组适配器的情况下实现这一点?如果是这样,又是如何做到的呢?
发布于 2019-08-29 20:25:45
如果sizes为ArrayList,则要更改微调器中的特定项,请尝试使用
sizes.set(index,newItem)如果您想将第3项更改为10,
sizes.set(2,10) //I am assuming the sizes arraylist is integer arraylist. if not change to required data type然后执行
adapter.notifyDataSetChanged() // This will refresh you spinner.而不是重新设置旋转器上的适配器。然后,如果你愿意,执行
s1.setSelection(2)s1.setAdapter(adapter);应该只执行一次(微调器初始化时)。
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);
}发布于 2019-08-29 19:32:15
尝试下面的代码,
选择索引位置2处的微调器元素(它将从微调器中选择第三个元素/项目)
s1.setSelection(2);https://stackoverflow.com/questions/57709133
复制相似问题