我在我的应用程序中创建了一些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));
}
}
}
答案 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);