我试图创建一个简单的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"/>
答案 0 :(得分:1)
stampDuty永远不会被初始化。
并且您将stampDuty声明为EditText,但在您的xml中是TextView。
将stampDuty更改为TextView,然后在start()
中添加:
stampDuty=(TextView)findViewById(R.id.stampDuty);