我正在尝试创建一个简单的Android应用来计算税收,但是每当我单击创建的按钮时,都会收到消息“不幸的是,等等已经停止了”
这是我的Java:
public class MainActivity extends ActionBarActivity {
EditText propValue, stampDuty;
Button calculate;
Double x, y;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start();
}
private void start() {
propValue=(EditText)findViewById(R.id.propValue);
calculate=(Button)findViewById(R.id.calculate);
calculate.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
calculate();
}
});
}
private void calculate()
{
x=Double.parseDouble(propValue.getText().toString());
if (x <= 125000 ) {
y = 0.0;
} else if (x <= 250000) {
y = (x - 125000) * 0.02;
} else if (x <= 925000) {
y = (125000 * 0.02) + ((x - 250000) * 0.05);
} else if (x <= 1500000) {
y = (125000 * 0.02) + (675000 * 0.05) + ((x - 925000) * 0.1);
} else if (x > 150000) {
y = (125000 * 0.02) + (675000 * 0.05) + (575000 * 0.1) + ((x - 1500000) * 0.12);
}
stampDuty.setText(Double.toString(y));
}
}
我绝对只是将数字放入EditText中。我输入的任何数字(带或不带小数位)。这是相关的布局部分:
<EditText
android:id="@+id/propValue"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:minLines="1"
android:maxLines="1"/>
<Button
android:id="@+id/calculate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button"
android:layout_margin="10dp"/>
<TextView
android:id="@+id/stampDuty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:minLines="1"
android:maxLines="1"/>
最佳答案
Stamp Duty从未初始化。
并且您将Stamp Duty声明为EditText,但是在xml中是TextView。
将stampDuty更改为TextView,然后在start()
中可以添加:
stampDuty=(TextView)findViewById(R.id.stampDuty);