Android中的简单乘法应用

时间:2012-07-12 19:44:15

标签: android multiplication

所以和其他许多人一样,我是新手。我到处找了解如何做到这一点,但没找到。 这是我试图制作的应用程序。 http://i.stack.imgur.com/JGhJP.png

我假设我必须从前两个edittexts中获取输入并将它们放入stings并将它们相乘并将答案设置为等于底部edittext? 我只是对如何正确地做到这一点感到困惑。 以下是我到目前为止所尝试的内容。

  package com.wattzen.testcalculation;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.support.v4.app.NavUtils;

public class Main extends Activity {

private static final String total_Made = "total_Made";

private double tmmade;
private int hedittext;
private int etmade;

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

    if (savedInstanceState == null) {
        tmmade = 0.0;

    } else {
        tmmade = savedInstanceState.getDouble(total_Made);
    }
}
    {

{
    hedittext = (EditText) findViewById(R.id.ethours);
    etmade = (EditText) findViewById(R.id.etmade);
    etmade.addTextChangedListener(etmadeWatcher);}

}

private void updateStandard() {
    double tmmade = hedittext * etmade;
    tmmade.addTextChangedListener(tmmadeWatcher);
    double toTal= tmmade;
}

}

这是xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hours Worked" />

    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <EditText
            android:id="@+id/ethours"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="number" >

            <requestFocus />
        </EditText>

    </TableRow>

    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="18dp"
            android:text="Amount made per hour" />

    </TableRow>

    <TableRow
        android:id="@+id/tableRow4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <EditText
            android:id="@+id/etmade"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="number" />

    </TableRow>

    <TableRow
        android:id="@+id/tableRow6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </TableRow>

    <TableRow
        android:id="@+id/tableRow5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/bcalculate"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:gravity="center"
            android:text="Calculate" />

    </TableRow>

    <TableRow
        android:id="@+id/tableRow7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Total Money Made" />

    </TableRow>

    <EditText
        android:id="@+id/tmmade"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:ems="10"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:inputType="number" />

</TableLayout>

我非常感谢你们给我的任何帮助。感谢。

2 个答案:

答案 0 :(得分:1)

你应该得到大量的语法错误,这些错误应该会让你知道需要改变的行。

由于hedittext和etmade是整数,你不能像在onCreate()中那样将它们设置为与EditText相同。

首先,您需要获取EditTexts的实际内容。您可以通过调用编辑文本的getText()方法来完成此操作。 然后你需要将getText的结果解析为整数。您可以使用Integer包装器类“parseInt()方法”执行此操作。

看起来应该更像这样:

EditText editTextA = (EditText) findViewById(R.id.ethours);
int hours = Integer.parseInt(editTextA.getText().toString())

答案 1 :(得分:0)

您的第一步是为onClick侦听器分配计算按钮。完成此操作后,请引用onCreate中的editTexts。在此之后,您可以使用 getText()函数从编辑文本中获取文本。

这是代码的基本模型。我建议先检查输入是否有效,然后再乘以

Button bcalculate = (Button)findViewById(R.id.bcalculate);
EditText hedittext   = (EditText)findViewById(R.id.ethours);
EditText etmade   = (EditText)findViewById(R.id.etmade);
EditText tmmade   = (EditText)findViewById(R.id.edittext3);

bcalculate.setOnClickListener(
    new View.OnClickListener()
    {
        public void onClick(View view)
        {
           try{ 
            double e1 = Double.parseDouble(hedittext.getText().toString());
            double e2 = Double.parseDouble(etmade.getText().toString());
            tmmade.setText(e1*e2);
            } catch (NumberFormatException e) {
        }

    });