如何在android中计算平均值?
我在应用程序中创建了几个EditText字段和一个按钮。如果在第一个和第二个EditText字段中输入值,当按下按钮时,第三个EditText字段将显示您输入的两个值的总和。这很好,但我想计算一个平均值。我的意思是,如果我有4个EditText字段,我想在其中3个(或更少)字段中输入值,第4个字段显示从总和除以输入值的数量计算的平均值。示例:第一个值:2,第二个值:4,平均值=2+4=6/2=3。我想创建一个案例,当一个或多个EditText字段未输入时,应用程序仍然可以计算平均值。希望你明白我想要什么。谢谢 这是我的: Medii.java:如何在android中计算平均值?,android,average,calculator,Android,Average,Calculator,我在应用程序中创建了几个EditText字段和一个按钮。如果在第一个和第二个EditText字段中输入值,当按下按钮时,第三个EditText字段将显示您输入的两个值的总和。这很好,但我想计算一个平均值。我的意思是,如果我有4个EditText字段,我想在其中3个(或更少)字段中输入值,第4个字段显示从总和除以输入值的数量计算的平均值。示例:第一个值:2,第二个值:4,平均值=2+4=6/2=3。我想创建一个案例,当一个或多个EditText字段未输入时,应用程序仍然可以计算平均值。希望你明白我
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));
}
}
}
计算有多少字段不是空的,然后将总数除以该数字。在使用Integer.parseInt之前,最好先检查是否为空或不可解析。:) 如果我没弄错你的问题,你有3条编辑文本,第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);
如果我是你,我会做一些不同的事情: 一个编辑文本和两个按钮:添加数字和计算 每次点击addnumber时,捕获并将其放在一个数组中 当您点击Calculate时,执行一个循环,将变量中的整数相加,然后作为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();
}
});
}
公共类MainActivity扩展活动{
public static ArrayList num=new ArrayList();
双和,res;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText editTextNum=(EditText)findViewById(R.id.editTextNum);
Button ButtonAd=(Button)findViewById(R.id.ButtonAd);
Button buttonCalc=(Button)findViewById(R.id.buttonCalc);
最终TextView textViewRes=(TextView)findViewById(R.id.textViewRes);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0){
字符串numCatch=editTextNum.getText().toString().trim();
如果(numCatch.length()!=0){
num.add(numCatch);
editTextNum.setText(“”);
}
textViewRes.setText(“平均值为”);
}
});
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0){
DecimalFormat=新的DecimalFormat(“#.###”);
对于(int i=0;我曾经尝试过我发布的内容。我知道如何进行求和和,但我不知道如何整合使用enter的值的数量。我知道应该如何做,以及其中的内容,但问题在于代码。你能帮我一点忙吗?txtNum1.getText().toString()是字符串。您可以使用isEmpty()检查它是否为空。每次你发现一个不是空的字符串时,将一个字符串添加到计数器,然后将总和除以计数器。尝试编写代码,发布它,如果它不起作用,请告诉我们发生了什么。你让我从第一行就迷路了。你能不能给我一个我自己的例子?请从第一行开始尝试?我无法想象我应该怎么做。我更新了我的第一篇文章。如何让我的应用程序检测填充了多少文本字段,然后除以检测到的数字?平均值现在运行良好。谢谢!很高兴听到它对您起作用。我强烈建议您在线学习一些基本Java教程(这是一个不错的开始)了解一下Java中的对象以及它们倾向于使用的方法的种类。否则,你会经常感到沮丧(这对你来说并不有趣),你会经常要求别人为你编写代码(这对其他人来说都不有趣),当出现问题时,你将不知道该怎么办(这对任何人来说都不好玩。)我使用了你的想法,我发现了如何计算平均值。它工作得很好,但前提是我填充所有文本字段,并且它除以所有文本字段的数量,所以我的应用程序不会检测填充的数量以及数字应该如何除以。有什么想法吗?我更新了我的第一篇文章。非常感谢!!!你可以检查是否满足条件以进行搜索e如果edittext为空或不为空。((et1.length()==0)和&&(et2.length()>0)和&(et3.length()>0)){//这里,如果edittext1为空且editText2和3不为空,则int calculate=num2+num3/2;}我刚刚修改了上面的代码。然后你可以用if语句检查et1和et2是否为空,et3是否为空,应用相同的公式。希望它能帮助Syes,它能帮助我对此有一个想法。谢谢!我会把代码放在我的答案上。你只需要用一个EditText、两个按钮和一个TextView构建一个视图,研究代码,祝你好运!