所以和其他许多人一样,我是新手。我到处找了解如何做到这一点,但没找到。 这是我试图制作的应用程序。 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>
我非常感谢你们给我的任何帮助。感谢。
答案 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) {
}
});