我正在尝试创建一个简单的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);

08-28 16:41