【发布时间】:2014-03-24 05:51:51
【问题描述】:
我正在尝试制作一个简单的小费计算器,并有一个 EditText 文本字段,您可以在其中输入您的总账单金额,然后单击您要在小费中计算的百分比按钮(例如 10%),然后单击该 % 按钮的 onClickListener 将计算提示并将结果放入自身下方的不同 TextView 字段中。
但是,我知道我必须将我的总帐单的 EditText 从一个字符串更改为一个双字节,并包含为此的代码,但是当我尝试将总帐单乘以 10% 的小费时,我仍然得到错误.为什么?
这是我的代码:
package com.example.nonitips;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
public EditText totalBill;
public double billWithTip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
totalBill = (EditText)findViewById(R.id.totalBill);
}
public void onTen (View v) {
Toast.makeText(this, "Tipping at 10%", Toast.LENGTH_SHORT).show();
totalBill.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double bill = Double.parseDouble(totalBill.getText().toString());
bill = (totalBill * 0.10) + totalBill; //Error on this line.
}
});
}
public void onFifteen (View v) {
Toast.makeText(this, "Tipping at 15%", Toast.LENGTH_SHORT).show();
}
public void onTwenty (View v) {
Toast.makeText(this, "Tipping at 20%", Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
【问题讨论】:
-
为什么要将edittext乘以double值?有道理吗?
-
EditText 值将是双倍的……只是在我的 xml 文件中,它被设置为 EditText。有没有办法以不同的方式设置它?我认为从 text 到 double 的转换可以正常工作。
-
账单 = (totalBill * 0.10) + totalBill;这里 totalBill 表示编辑文本。
-
@Lokesh,天哪,非常感谢!这真是一个简单的错误。现在由于某种原因它没有显示在我的 billWithTip 字段中,但这是另一个问题。
-
@Noni A:但是你在哪里使用 billWithTip 值?
标签: android eclipse android-edittext