Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在增加/减少int值后将其重置为0´;s值_Java_Android_Xml_Int - Fatal编程技术网

Java 如何在增加/减少int值后将其重置为0´;s值

Java 如何在增加/减少int值后将其重置为0´;s值,java,android,xml,int,Java,Android,Xml,Int,在我开始之前,我想说我只是一个初学者,所以我希望你能理解我为什么要问这么简单的问题:) 通过“+”和“-”按钮,我可以调整数量。然后用“订单”按钮,我显示价格。但当我按下“重新启动”按钮,然后再次调整数量时,数量不会从0开始,而是从最新数量开始 这是XML: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/to

在我开始之前,我想说我只是一个初学者,所以我希望你能理解我为什么要问这么简单的问题:)

通过“+”和“-”按钮,我可以调整数量。然后用“订单”按钮,我显示价格。但当我按下“重新启动”按钮,然后再次调整数量时,数量不会从0开始,而是从最新数量开始

这是XML:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:textSize="16sp"
    android:textAllCaps="true"
    android:text="Quantity"
    android:id="@+id/quantity" />

<Button
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_marginLeft="16dp"
    android:layout_marginBottom="16dp"
    android:layout_below= "@id/quantity"
    android:text="+"
    android:id="@+id/increment"
    android:onClick="increment" />

<TextView
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_marginLeft="16dp"
    android:layout_marginBottom="16dp"
    android:layout_below= "@id/quantity"
    android:layout_toRightOf = "@id/increment"
    android:textSize="16sp"
    android:textColor="#000000"
    android:gravity="center"
    android:text="0"
    android:id="@+id/quantity_text_view" />

<Button
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_marginLeft="16dp"
    android:layout_marginBottom="16dp"
    android:layout_below= "@id/quantity"
    android:layout_toRightOf= "@id/quantity_text_view"
    android:text="-"
    android:id="@+id/decrement"
    android:onClick="decrement" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginBottom="16dp"
    android:layout_below= "@id/increment"
    android:textSize="16sp"
    android:textAllCaps="true"
    android:text="Price"
    android:id="@+id/price" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginBottom="16dp"
    android:layout_below= "@id/price"
    android:textSize="16sp"
    android:textColor="#000000"
    android:text="$0.00"
    android:id="@+id/price_text_view" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginBottom="16dp"
    android:layout_below= "@id/price_text_view"
    android:text="Order"
    android:id="@+id/button"
    android:onClick="submitOrder" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below= "@id/button"
    android:textSize="16sp"
    android:text=""
    android:id="@+id/enjoy" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="16dp"
    android:layout_marginBottom="16dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:text="Restart"
    android:id="@+id/restart"
    android:onClick="restart" />

</RelativeLayout>
public class MainActivity extends ActionBarActivity {

int quantity = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            TextView view = (TextView) findViewById(R.id.enjoy);
            view.setPadding(16, 0, 0, 16);
            view.setText("Enjoy!");
            displayPrice(quantity * 5);
        }
    });
}

/**
 * This method is called when the + button is clicked.
 */
public void increment(View view){
    quantity = quantity + 1;
    display(quantity);
}

/**
 * This method is called when the - button is clicked.
 */
public void decrement(View view){
    quantity = quantity - 1;
    display(quantity);
}

/**
 * This method is called when the order button is clicked.
 */
public void submitOrder(View view) {
    display(quantity);

}

/**
 * This method displays the given quantity value on the screen.
 */
private void display(int number) {
    TextView quantityTextView = (TextView) findViewById(
            R.id.quantity_text_view);
            quantityTextView.setText("" + number);
}

/**
 * This method displays the given price on the screen.
 */
private void displayPrice(int number) {
    TextView priceTextView = (TextView) findViewById(R.id.price_text_view);
    priceTextView.setText(NumberFormat.getCurrencyInstance().format(number));
}

public void restart(View v) {
    int quantity = 0;
    display(quantity);
    displayPrice(quantity);
    TextView view = (TextView) findViewById(R.id.enjoy);
    view.setPadding(0, 0, 0, 0);
    view.setText("");
}
}

我想要实现的是,按下重启按钮后,int
quantity
的值将重置为0。

在重启方法中,您正在创建一个名为quantity的新变量;但是,您应该使用已经为类定义的数量。只需将方法更改为:

public void restart(View v) {
    quantity = 0;
    display(quantity);
    displayPrice(quantity);
    TextView view = (TextView) findViewById(R.id.enjoy);
    view.setPadding(0, 0, 0, 0);
    view.setText("");
}

在重新启动方法中,您正在创建一个名为quantity的新变量;但是,您应该使用已经为类定义的数量。只需将方法更改为:

public void restart(View v) {
    quantity = 0;
    display(quantity);
    displayPrice(quantity);
    TextView view = (TextView) findViewById(R.id.enjoy);
    view.setPadding(0, 0, 0, 0);
    view.setText("");
}

变量的范围。您已经在restart方法中声明了一个新变量,而不是使用您已经在MainActivity中声明的变量

public void restart(View v) {
     quantity = 0;
     display(quantity);
     displayPrice(quantity);
     TextView view = (TextView) findViewById(R.id.enjoy);
     view.setPadding(0, 0, 0, 0);
     view.setText("");
}

变量的范围。您已经在restart方法中声明了一个新变量,而不是使用您已经在MainActivity中声明的变量

public void restart(View v) {
     quantity = 0;
     display(quantity);
     displayPrice(quantity);
     TextView view = (TextView) findViewById(R.id.enjoy);
     view.setPadding(0, 0, 0, 0);
     view.setText("");
}

你认为
int-quantity
是什么意思?
int-quantity=0->
quantity=0
这称为变量阴影。你认为
int-quantity
是什么意思?
int-quantity=0->
quantity=0
这称为变量阴影。