点击任何按钮时都会崩溃

时间:2015-11-08 04:51:07

标签: java android

应用程序执行得很好,界面加载也很好,但是当我尝试按下任何按钮时,不会发生任何事情。重点非常简单:按下' +'按钮,数量增加,价格立即更新以匹配所述数量,反之亦然 - ' - '按钮。我不知道我做错了什么,但是与应用程序的任何按钮交互都会崩溃。

这是我的Java:

package com.t99sdevelopment.mobile.eyy;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.text.NumberFormat;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public int quantityValue = 1;

public void increaseQuantity (View view) {
    quantityValue = quantityValue + 1;
    updateQuantityValue(view);
}

public void decreaseQuantity (View view) {
    quantityValue = quantityValue - 1;
    updateQuantityValue(view);
}

public void updateQuantityValue(View view) {
    updateQuantity(quantityValue);
    updatePrice(quantityValue);
}

private void updateQuantity(int number) {
    TextView quantity = (TextView) findViewById(
            R.id.quantityValue);
    quantity.setText(number);
}

private void updatePrice(int number) {
    TextView price = (TextView) findViewById(R.id.priceValue);
    price.setText(NumberFormat.getCurrencyInstance().format(number * 5));
    }
}

这是我的XML:     

<TextView
    android:text="Quantity"
    android:id="@+id/quantityText"
    android:textAllCaps="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="16sp"
    android:textColor="#000000"
    android:autoText="false"
    android:paddingBottom="20dp" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:gravity="center_horizontal">

    <TextView
        android:text="0"
        android:id="@+id/quantityValue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="16dp"
        android:paddingBottom="16dp" />

    <Button
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:text="-"
        android:id="@+id/button"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/quantityValue"
        android:layout_toStartOf="@+id/quantityValue"
        android:layout_marginRight="15dp"
        android:layout_marginEnd="15dp"
        android:onClick="decreaseQuantity" />

    <Button
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:text="+"
        android:id="@+id/button2"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/quantityValue"
        android:layout_toEndOf="@+id/quantityValue"
        android:layout_marginLeft="15dp"
        android:layout_marginStart="15dp"
        android:onClick="increaseQuantity" />
</RelativeLayout>

<TextView
    android:text="Price"
    android:id="@+id/priceText"
    android:textAllCaps="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="16sp"
    android:textColor="#000000"
    android:autoText="false"
    android:paddingTop="20dp" />

<TextView
    android:text="$0"
    android:id="@+id/priceValue"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="20dp"
    android:paddingBottom="20dp" />

<Button
    android:text="Order"
    android:textAllCaps="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

实际代码的格式化很好,但是当我粘贴到堆栈中时它变得棘手,所以我知道这不是问题。

1 个答案:

答案 0 :(得分:0)

更改updateQuantityupdatePrice方法,例如:

private void updateQuantity(int number) {
    TextView quantity = (TextView) findViewById(
            R.id.quantityValue);
    quantity.setText(String.valueOf(number));
}

private void updatePrice(int number) {
    TextView price = (TextView) findViewById(R.id.priceValue);
    price.setText(String.valueOf(NumberFormat.getCurrencyInstance().format(number * 5)));
    }
}