一起添加从CardView中的微调器获得的多个值(Add multiple value obtained from spinner in CardView together)

编程入门 行业动态 更新时间:2024-10-15 00:20:35
一起添加从CardView中的微调器获得的多个值(Add multiple value obtained from spinner in CardView together)

我有一个CardView包含一个微调。 微调器包含从0到5的数字供用户选择。 每个CardView本身都有一个与其相关的唯一ID。 例如说现在我有两张卡片,ID为1的卡片A和ID为2的卡片B.根据从微调器中选择的值,我将创建一个数组。 例如,卡片A的值为3,卡片B的值为2,则最终阵列将看起来像[1,1,1,2,2],并且如果卡片A的值的微调器更改为0,那么数组将被更新为[2,2]。 我现在可以为每张卡片创建分离的数组,但我不知道如何将数组添加到一起或根据每个spinners中的最终值更新数组

我现在拥有的:

@Override public void onBindViewHolder(ViewHolder holder, final int position) { final ChooseServiceList chooseServiceList1 = chooseServiceList.get(position); // Spinner Drop down elements List<Integer> categories = new ArrayList<Integer>(); categories.add(0); categories.add(1); categories.add(2); categories.add(3); categories.add(4); categories.add(5); ArrayAdapter<Integer> dataAdapter = new ArrayAdapter<Integer>(context, android.R.layout.simple_spinner_item, categories); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); holder.spinnerServiceNum.setAdapter(dataAdapter); holder.spinnerServiceNum.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { String item = adapterView.getItemAtPosition(i).toString(); Integer serviceCount = Integer.parseInt(item);//spinner value Integer serviceId = chooseServiceList1.getServiceId();//ID associated with card List<Integer> list = new ArrayList<Integer>(); for(int service = 1; service<=serviceCount; service++) { list.add(serviceId); if(service == serviceCount){ //final numbers of each ID that should be add into array } } } @Override public void onNothingSelected(AdapterView<?> adapterView) { //do nothing } }); }

我现在可以打印出单独的数组,例如[1,1,1],[2,2],但是如何在选择微调器后更新和合并它们? 我试图把它们放在一个共享首选项中,但这只会使最终数组[2,2]成为共享首选项。

I have a CardView containing a spinner. The spinner contains number from 0 to 5 for user to choose. Each CardView itself has a unique ID associated with it. For example say that now I have two cards, card A with ID of 1 and card B with ID of 2. Depending on the value selected from the spinner I will create an array. For example card A has value of 3 and card B has value of 2, the final array will then look like [1,1,1,2,2], and if the spinner of the value of card A is changed to 0, then the array will be updated to [2,2]. I can now create separated array for each cards, but I am not sure how to add the arrays together or update the arrays based on the final values in each spinners

What I have now:

@Override public void onBindViewHolder(ViewHolder holder, final int position) { final ChooseServiceList chooseServiceList1 = chooseServiceList.get(position); // Spinner Drop down elements List<Integer> categories = new ArrayList<Integer>(); categories.add(0); categories.add(1); categories.add(2); categories.add(3); categories.add(4); categories.add(5); ArrayAdapter<Integer> dataAdapter = new ArrayAdapter<Integer>(context, android.R.layout.simple_spinner_item, categories); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); holder.spinnerServiceNum.setAdapter(dataAdapter); holder.spinnerServiceNum.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { String item = adapterView.getItemAtPosition(i).toString(); Integer serviceCount = Integer.parseInt(item);//spinner value Integer serviceId = chooseServiceList1.getServiceId();//ID associated with card List<Integer> list = new ArrayList<Integer>(); for(int service = 1; service<=serviceCount; service++) { list.add(serviceId); if(service == serviceCount){ //final numbers of each ID that should be add into array } } } @Override public void onNothingSelected(AdapterView<?> adapterView) { //do nothing } }); }

I can print out the separate arrays now e.g. [1,1,1], [2,2], but how should I update and combine them after spinner is selected? I tried putting them in a shared preference but this will only make the final array [2,2] the shared preference.

最满意答案

使列表定义最终并将其移到外部类。 所以删除这一行...

List<Integer> list = new ArrayList<Integer>();

相反,在您的代码顶部,写...

final ChooseServiceList chooseServiceList1 = chooseServiceList.get(position); final List<Integer> list = new ArrayList<Integer>();

Make the list definition final and move it to the outer class. So remove this line...

List<Integer> list = new ArrayList<Integer>();

And instead, at the top of your code, write...

final ChooseServiceList chooseServiceList1 = chooseServiceList.get(position); final List<Integer> list = new ArrayList<Integer>();

更多推荐

本文发布于:2023-08-03 11:05:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1387022.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   Add   CardView   spinner   obtained

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!