如何计算android中的平均值?

时间:2014-03-21 22:36:54

标签: android average calculator

我在我的应用程序中创建了一些EditText字段和一个按钮。如果将值放在第一个和第二个EditText字段中,当您按下按钮时,第三个EditText字段将显示您输入的2个值的总和。这工作正常,但我想计算平均值。我的意思是,如果我有4个EditText字段,我想输入3(或更少)的值和第4个,以显示总和的平均值,除以输入值的数量。示例:第一个值:2,第二个值:4,平均值= 2 + 4 = 6/2 = 3。我想在未输入EditText字段或更多字段时创建案例,并且应用程序仍可以计算平均值。希望你明白我的意思。谢谢!

这是我的:

Medii.java:

    package com.cngcnasaud.orar;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;

public class Medii extends Activity {

    EditText txtNum1;
    EditText txtNum2;
    EditText txtTotal;
    Button btnCompute;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.medii);

        txtNum1 = (EditText) findViewById(R.id.editText1);
        txtNum2 = (EditText) findViewById(R.id.editText2);
        txtTotal = (EditText) findViewById(R.id.editText3);
        btnCompute = (Button) findViewById(R.id.bmedii);

        btnCompute.setOnClickListener(new ClickButton ());

    }


    private class ClickButton implements Button.OnClickListener{

        @Override
        public void onClick(View v) {

            int x = Integer.parseInt(txtNum1.getText().toString());
            int y = Integer.parseInt(txtNum2.getText().toString());

            int total = (x + y)/2;

            txtTotal.setText(Integer.toString(total));

        }


    }





}

3 个答案:

答案 0 :(得分:1)

计算有多少字段不为空,并将总数除以该数字。在使用Integer.parseInt之前检查空白或不可解析可能是个好主意。 :)

答案 1 :(得分:1)

如果我是你,我做了不同的事情:

单个editText和两个按钮:添加数字和计算。

每次点击添加号码,捕捉并将其放在数组上。

当你点击计算时,做一个循环来对变量中的整数进行求和,然后将平均值作为sum_variable / array.lenght。

这样,您可以在不创建静态数量的字段的情况下对无限数字求和。

祝你好运!

编辑:关注代码:

public class MainActivity extends Activity {

public static ArrayList<String> num = new ArrayList<String>();
double sum, res;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText editTextNum = (EditText)findViewById(R.id.editTextNum);
    Button buttonAdd = (Button)findViewById(R.id.buttonAdd);
    Button buttonCalc = (Button)findViewById(R.id.buttonCalc);
    final TextView textViewRes = (TextView)findViewById(R.id.textViewRes);

    buttonAdd.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
             String numCatch=editTextNum.getText().toString().trim();
                if(numCatch.length() != 0){
                       num.add(numCatch);
                    editTextNum.setText("");
                }
                textViewRes.setText("The average is ");
        }
    });

    buttonCalc.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            DecimalFormat format = new DecimalFormat("#.##");
            for(int i=0;i<num.size();i++){
                sum = Integer.parseInt(num.get(i)) + sum;
            }
            res = sum/num.size();
            textViewRes.setText("The average is "+format.format(res));
            res = 0;
            sum = 0;
            num.clear();
        }
    });
}

答案 2 :(得分:0)

如果我理解你的问题,你有3个edittexts,第4个应该显示平均值。我没有测试过,所以可能会有一些拼写错误。

String et1 = editText1.getText().toString();


String et2 = editText2.getText().toString();
String et3 = editText3.getText().toString();
int num1 = Integer.parseInt(et1);
 int num2 = Integer.parseInt(et2);
int num3 = Integer.parseInt(et3);
int calculate = num1 + num2 + num3/3;


 int result = calculate;

editText4.setText(" " + result);