-1

所以像许多其他人一样,我是 android 新手。我到处寻找有关如何执行此操作的解释,但没有找到。这是我试图制作的应用程序。 http://i.stack.imgur.com/JGhJP.png

我假设我必须从前两个编辑文本中获取输入并将它们放入字符串中,然后将它们相乘并将答案设置为等于底部编辑文本?我只是对如何正确地做到这一点感到困惑。这是我到目前为止所尝试的。

  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>

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

4

2 回答 2

1

您应该会收到大量语法错误,这些错误应该会提示您需要更改的行。

由于 hedittext 和 etmade 是整数,因此不能像在 onCreate() 中那样将它们设置为等于 EditText。

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

它应该看起来更像这样:

EditText editTextA = (EditText) findViewById(R.id.ethours);
int hours = Integer.parseInt(editTextA.getText().toString())
于 2012-07-12T19:56:56.387 回答
0

您的第一步是为计算按钮分配一个 onClick 侦听器。完成此操作后,请在 onCreate 中引用这两个 editText。之后,您可以使用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) {
        }

    });
于 2012-07-12T20:01:14.377 回答