2017-10-01 143 views
-1

因此,对于我的应用开发类我不得不为咖啡店做一个应用程序。它必须有两个用于打奶油和巧克力的复选框。它必须接受用户的姓名,允许他们检查相应的复选框,添加一定数量的产品,并显示帐单及其总额。出于某种原因,当按下按钮时,负号和正号按钮之间的0不会改变,并且订单按钮下方的底部文本不会显示相关信息。Android咖啡厅

这里是我的代码:

package com.example.chan.coffeeshop; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 
    int quantity = 0; 

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

    public void decrementQuantity(View view) { 
     quantity = quantity - 1; 
     if (quantity < 0) { 
      Toast.makeText(getApplicationContext(), "Less than 1 is not valid", Toast.LENGTH_SHORT).show(); 
     } else { 
      displayquantity(quantity); 
     } 
    } 

    public void incrementQuantity(View view) { 
     quantity = quantity + 1; 
     if (quantity > 10) { 
      Toast.makeText(getApplicationContext(), "More than 10 is not valid", Toast.LENGTH_SHORT).show(); 
     } else { 
      displayquantity(quantity); 
     } 
    } 

    private void displayquantity(int quantity) { 
     TextView quantity1 = (TextView) findViewById(R.id.product_Quantity); 
     quantity1.setText("" + quantity); 
    } 

    public void OrderButton(View view) { 

     EditText name = (EditText) findViewById(R.id.name); 

     String names = name.getText().toString(); 
     CheckBox choc = (CheckBox) findViewById(R.id.chocolate); 
     Boolean chocs = choc.isChecked(); 
     CheckBox whippedCream = (CheckBox) findViewById(R.id.whipped_Cream); 
     Boolean whipped = whippedCream.isChecked(); 
     int price = calculatePrice(chocs, whipped); 
     String finalMessage = createFinalMessage(names, chocs, whipped, price); 
     displayMessage(finalMessage); 
    } 

    private void displayMessage(String finalMessage) { 
     TextView Message = (TextView) findViewById(R.id.bill_Total); 
     Message.setText("" + finalMessage); 
    } 

    private String createFinalMessage(String names, Boolean chocs, Boolean whipped, int price) { 
     String Message = "Name: " + names + "\n" + "chocolate ordered: " + chocs + "\n" + "whipped cream ordered: " + whipped + "\n" + "Total Price: " + price; 
     return Message; 
    } 

    private int calculatePrice(Boolean chocs, Boolean whipped) { 

     int price = 5; 
     if (chocs) 
     { 
      price = price + 1; 
     } 
     if (whipped) 
     { 
      price = price + 1; 
     } 
     return price * quantity; 
    } 
} 

下面是布局代码:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="16dp" 
    android:paddingLeft="64dp" 
    android:paddingTop="16dp" 
    android:padding="10dp" 
    tools:context="com.example.chan.coffeeshop.MainActivity"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:weightSum="1"> 

     <TextView 
      android:id="@+id/welcome" 
      android:layout_width="match_parent" 
      android:layout_height="76dp" 
      android:background="@android:color/holo_red_light" 
      android:gravity="center" 
      android:text="Welcome to Chandler's Coffee Shop App!" 
      android:textAppearance="@style/TextAppearance.AppCompat.Large" 
      tools:layout_editor_absoluteY="5dp" 
      tools:layout_editor_absoluteX="-8dp" /> 

     <TextView 
      android:id="@+id/message" 
      android:layout_width="wrap_content" 
      android:layout_height="38dp" 
      android:gravity="center" 
      android:text="Buy some high quality coffee for only 5 bucks!" 
      android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
      tools:layout_editor_absoluteX="-17dp" 
      tools:layout_editor_absoluteY="88dp" /> 

     <LinearLayout 
      android:id="@+id/activity" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <EditText 
       android:id="@+id/name" 
       android:layout_width="match_parent" 
       android:layout_height="66dp" 
       android:ems="10" 
       android:inputType="textPersonName" 
       tools:layout_editor_absoluteX="24dp" 
       tools:layout_editor_absoluteY="134dp" /> 

      <CheckBox 
       android:id="@+id/whipped_Cream" 
       android:gravity="center" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="Whipped Cream $1" 
       tools:layout_editor_absoluteX="39dp" 
       tools:layout_editor_absoluteY="211dp" /> 

      <CheckBox 
       android:id="@+id/chocolate" 
       android:gravity="center" 
       android:layout_width="375dp" 
       android:layout_height="wrap_content" 
       android:text="Chocolate $1" 
       tools:layout_editor_absoluteX="225dp" 
       tools:layout_editor_absoluteY="211dp" /> 

      <TextView 
       android:id="@+id/coffee_Quantity" 
       android:gravity="center" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="Quantity" 
       android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
       tools:layout_editor_absoluteX="153dp" 
       tools:layout_editor_absoluteY="263dp" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="83dp" 
      android:layout_marginTop="10dp" 
      android:orientation="horizontal" 
      android:padding="6dp" 
      android:layout_weight="0.53"> 

      <Button 
       android:id="@+id/minus_Button" 
       android:layout_width="156dp" 
       android:layout_height="72dp" 
       android:gravity="center" 
       android:text="-" 
       tools:layout_editor_absoluteX="39dp" 
       tools:layout_editor_absoluteY="306dp" /> 

      <TextView 
       android:id="@+id/product_Quantity" 
       android:layout_width="44dp" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:textAppearance="@style/TextAppearance.AppCompat.Large" 
       tools:layout_editor_absoluteX="186dp" 
       tools:layout_editor_absoluteY="330dp" /> 

      <Button 
       android:id="@+id/plus_button" 
       android:layout_width="match_parent" 
       android:layout_height="72dp" 
       android:gravity="center" 
       android:text="+" 
       tools:layout_editor_absoluteX="240dp" 
       tools:layout_editor_absoluteY="306dp" /> 

     </LinearLayout> 

     <TextView 
      android:id="@+id/coffee_Price" 
      android:gravity="center" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Price" 
      android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
      tools:layout_editor_absoluteX="172dp" 
      tools:layout_editor_absoluteY="388dp" /> 

     <Button 
      android:id="@+id/coffee_Order" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:text="ORDER" 
      tools:layout_editor_absoluteX="91dp" 
      tools:layout_editor_absoluteY="423dp" /> 

     <LinearLayout 
      android:layout_marginTop="10dp" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:padding="6dp"> 

      <TextView 
       android:id="@+id/bill_Total" 
       android:gravity="center" 
       android:layout_width="match_parent" 
       android:layout_height="27dp" 
       android:textAppearance="@style/TextAppearance.AppCompat.Large" 
       tools:layout_editor_absoluteX="45dp" 
       tools:layout_editor_absoluteY="485dp" /> 

     </LinearLayout> 

    </LinearLayout> 

</ScrollView> 
+0

欢迎使用堆栈溢出。请回顾[我如何问一个好问题](https://stackoverflow.com/help/how-to-ask)。什么*确切*是你遇到的问题(“不行”不会告诉我们什么),你已经试图找到问题的是什么?问题应该显示**研究证据和尝试自己解决问题**,明确提出具体问题,以及[最小,完整和可验证示例]中的相关代码*(https:// stackoverflow。 com/help/mcve),所以我们有足够的信息能够提供帮助。 – FluffyKitten

回答

0

您没有设置OnClickListeners您的按钮。一旦你这样做,它应该工作,你的增量和减量功能看起来不错。如果您想更新,您还需要在其中设置总数。

1

我检查了您的代码,发现既没有onClick也没有onClickListener被设置为按钮。
他们如何设想工作呢?

或者:

集的onClick在XML像
android:onClick="decrementQuantity"minus_Button
android:onClick="decrementQuantity"plus_Button
android:onClick="OrderButton"coffee_Order

或者:

设置onClickListener上的onCreate LIK按钮e

 Button plusButton = findViewById(R.id.plus_button); 
     Button minusButton = findViewById(R.id.minus_Button); 
     Button orderButton = findViewById(R.id.coffee_Order); 
     plusButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       incrementQuantity(view); 
      } 
     });  
     minusButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       decrementQuantity(view); 
      } 
     }); 
     orderButton .setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       OrderButton(view); 
      } 
     }); 

可能这些是你代码中唯一错误的东西,试试这个。

0

在Layor设计视图中,双击minus/plus按钮添加您的incrementQuantity/decrementQuantity ,并且neet将onClickListener设置为触发器来激活您的按钮。

如果要在视图上显示数量,还需要将数量传递给变量以显示在UI级别