【问题标题】:How to store data to array and SUM data from Array如何将数据存储到数组和从数组中求和数据
【发布时间】:2019-11-10 12:55:48
【问题描述】:

我在 radiogroup 中有单选按钮,如果我单击它,我将获取值并将其显示为 Toast 消息,然后我想将值存储到数组中。

这是我的代码。

此代码具有获取单选按钮文本值的功能。

mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                RadioButton checkedRadioButton = (RadioButton) view.findViewById(i);
                String text = checkedRadioButton.getText().toString();
                Toast.makeText(getContext(), text, Toast.LENGTH_SHORT).show();
            }

        });

得到数组中的值后,我想对新变量中的数据求和。

【问题讨论】:

  • 我觉得你的问题不清楚。你在这里提取一个字符串。那是一个数字吗?或者一个包含多个数字的字符串,例如“1 2 3” .... 换句话说:您到底要检索什么,以及您希望它如何存储? (注意:你真的只需要一个搜索引擎来学习如何计算一个数字数组的元素之和......不要问别人这么基本的东西,自己搜索答案,这就是你学习编程的方式)跨度>
  • 不好意思,怎么改成数字?
  • 同样的故事:这里有数以万计的书籍、教程或 Q/As 告诉你这件事。说真的:似乎“问别人”是你解决(非常基本的)问题的第一个冲动。尝试改变你的操作模式。 首先使用搜索引擎。获得一本关于 Java 基础知识的好书,然后完成它。要求解释应该是你的最后手段,而不是你的第一选择。您通过尝试自己解决问题来学习编程。如前所述:这样的事情有据可查。你凭什么指望我们为你写下……之前写了这么多次的东西?

标签: java android


【解决方案1】:

要将值存储在数组中,请使用 ArrayList

ArrayList<Integer> myList = new ArrayList<Integer>();

每次你想存储一个 int 值时,使用:

myList.add(the int value);

在您的情况下,将 int 值替换为 Integer.parseInt(text)

对于求和过程:用一个简单的for迭代数组如下

int total = 0;

for (int i=0; i<myList.size(); i++){
    total += myList.get(i);
}

【讨论】:

    【解决方案2】:

    setOnCheckedChangeListener 之外声明一个列表,每次单击单选按钮时都会将该元素添加到列表中:

    ArrayList mArrayList = new ArrayList();

    mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                RadioButton checkedRadioButton = (RadioButton) view.findViewById(i);
                String text = checkedRadioButton.getText().toString();
                mArrayList.add(Integer.parseInt(text));
                Toast.makeText(getContext(), text, Toast.LENGTH_SHORT).show();
            }
    
        });
    

    当你想得到列表的总和时:

    如果您使用的是 java 8:

    int sum = mArrayList .stream().mapToInt(Integer::intValue).sum();

    如果没有:

    int sum = 0;
    
    for(Integer iterator: mArrayList){  
      sum+=iterator
     }
    

    //在那之后你的总和就准备好了

    就是这样

    编辑

    只需确保所有单选按钮都是数字。如果您遇到空数字或字符,您的 Android 应用程序将崩溃并给出 NumberFormatException

    【讨论】:

    • 那么如何检查数据是否存储在数组中?
    • 你可以查看if (mArrayList.size() &gt; 0)
    • @asyiqc 老实说:以不同的顺序处理事物。在尝试使用 android 做复杂的事情之前,先了解一下 java 基础知识。您可以使用其他代码检查该列表是否为空。
    • 我可以用 logd 检查吗??
    • @asyiqc 不,你不能。这是一种记录字符串的工具。这与您在字段中存储信息的应用程序没有任何关系
    猜你喜欢
    • 1970-01-01
    • 2021-04-27
    • 2021-04-09
    • 1970-01-01
    • 2011-12-31
    • 2022-06-29
    • 2016-10-06
    • 2012-01-13
    • 2012-07-19
    相关资源
    最近更新 更多