gpt4 book ai didi

android - 需要帮助在 editText 之间进行数学编程

转载 作者:行者123 更新时间:2023-11-30 04:20:11 28 4
gpt4 key购买 nike

我需要帮助来理解如何在不同的 EditText View 之间完成数学运算。我不是要别人给我写代码,而是可能会解释完成这项工作涉及的内容。

我想张贴这张照片,但作为新用户我不能。基本上我有一个用于以下内容的 EditText:宽度、长度、屋檐高度、间距。

我有所有 TextView 的 ID,我只是不知道如何对幕后数学进行编程以使它们工作。我确实有执行数学运算所需的方程式,只是不确定将它们放在 Java 中的位置和方式。

基本上,我需要用户在前 4 个框中的每个框中输入一个数字。我需要使用方程生成将显示在“SQFT”框中的答案。用户还将在成本框中输入一个数字,该数字将生成需要在单独的 TextView 中显示的“总计”。

任何帮助将不胜感激,即使它是为我指明教程的方向以帮助我入门。感谢您的帮助。

为了说明我需要使用什么类型的数学,下面是我用 excel 计算的等式。

(length+width)*(Eave+1)*2 + (((width/2)/12*Pitch)*(width/2)*2)

最佳答案

我不确定您是否不知道如何提取在 EditText 中输入的数字、如何实际进行数学计算、如何让用户启动计算或如何显示它。

我创建了一个小型演示,其中包含 2 个 EditText 和一个显示输入数字总和的 TextView。用户不需要按任何按钮来执行计算,每次用户更新文本时都会自动执行(我假设这就是您想要的)。

请注意这段代码不是好的代码,它使用了大量内部匿名类等,但它应该演示如何执行此操作的机制。

这是ma​​in.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >

<EditText
android:id="@+id/a"
android:hint="input a"
android:inputType="number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:minWidth="60dp"/>
<EditText
android:id="@+id/b"
android:hint="input b"
android:inputType="number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:minWidth="60dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="a+b = " />
<TextView
android:id="@+id/total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp" />

</LinearLayout>

这是示例 Activity :

package com.example;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;

public class SumActivity extends Activity
{
private int a;
private int b;
private TextView totalOutput;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText inputA = (EditText) findViewById(R.id.a);
EditText inputB = (EditText) findViewById(R.id.b);
totalOutput = (TextView) findViewById(R.id.total);
inputA.addTextChangedListener(new TextChangedListener()
{

@Override
public void numberEntered(int number)
{
a = number;
updateTotal();
}
});
inputB.addTextChangedListener(new TextChangedListener()
{

@Override
public void numberEntered(int number)
{
b = number;
updateTotal();
}
});
}

private void updateTotal()
{
int total = a + b; // This is where you apply your function
totalOutput.setText("" + total); // need to do that otherwise int will
// be treated as res id.
}

private abstract class TextChangedListener implements TextWatcher
{

public abstract void numberEntered(int number);

@Override
public void afterTextChanged(Editable s)
{
String text = s.toString();
try
{
int parsedInt = Integer.parseInt(text);
numberEntered(parsedInt);
} catch (NumberFormatException e)
{
Log.w(getPackageName(), "Could not parse '" + text + "' as a number", e);
}
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
}
}

}

关于android - 需要帮助在 editText 之间进行数学编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9388832/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com