Импорт класса для закусочной в Android Studio - PullRequest
0 голосов
/ 05 мая 2020

Я хочу использовать закусочную, чтобы показывать сообщение, когда установлен определенный флажок. Я просмотрел различные источники и нашел это. Верно?

CheckBox WhippedCreamCheckBox = (CheckBox) findViewById(R.id.whip_check);
        final boolean hasWhippedCream = WhippedCreamCheckBox.isChecked();

Это флажок и условие, которое я сделал для Включить снэкбар: -

if(hasWhippedCream){
            WhippedCreamCheckBox.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Snackbar whipsnack=Snackbar.make(v,"$1 charged for Whip Cream",Snackbar.LENGTH_SHORT);
                    whipsnack.show();
                    }
            });
            extra=1;
        }

(Игнорировать лишнее) И если это правильно, то при импорте класса отображается ошибка. В нем говорится, что этот класс не существует (он сам добавил). Импорт: -

import com.google.android.material.snackbar.Snackbar;

Помогите, пожалуйста. А также, если вы можете, также расскажите, как мы можем добавить опцию отмены и активировать ее, чтобы снять флажок. Это исходный файл:

        package com.example.javaup;



import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

/**
 * This app displays an order form to order coffee.
 */
public class MainActivity extends AppCompatActivity {
    int quantity=1;

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

    /**
     * This method is called when the order button is clicked.
     */
    public void submitOrder(View view) {
        String message;
        int extra = 0;
        EditText nameEnter =(EditText) findViewById(R.id.name_enter);
        String Namedisplay =nameEnter.getText().toString();

        CheckBox WhippedCreamCheckBox = (CheckBox) findViewById(R.id.whip_check);
        boolean hasWhippedCream = WhippedCreamCheckBox.isChecked();
        CheckBox chocolateCheckBox = (CheckBox) findViewById(R.id.chocolate_check);
        boolean hasChocolate =chocolateCheckBox.isChecked();

        if(hasWhippedCream && hasChocolate)
            extra=3;
        else if(hasChocolate)
            extra=2;
        else
            extra=1;

        int price=calculatePrice(extra);
        message=createordersummary(price,hasWhippedCream,hasChocolate,Namedisplay);

        Intent intent = new Intent(Intent.ACTION_SENDTO);
        intent.setData(Uri.parse("mailto:")); // only email apps should handle this
        intent.putExtra(Intent.EXTRA_SUBJECT, "Coffee order for " + Namedisplay);
        intent.putExtra(Intent.EXTRA_TEXT, message);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }
        displayMessage(message);
    }

    private String createordersummary(int price,boolean whippedcream ,boolean chocolate,String name)
    {
        String summary;
        summary=getString(R.string.name) + ":" + name + "\n" + getString(R.string.quantity) + ":" + quantity + "\n" + getString(R.string.addwhip) + "?" + whippedcream + "\n" + getString(R.string.addchoc) + "?" + chocolate +  "\n" +
    getString(R.string.price) + ":$" + price + ".0" + "\n" + getString(R.string.thank);
        return summary;
    }

    public void increment(View view) {
        quantity+=1;
        display(quantity);
    }

    public void decrement(View view) {

        if(quantity==1){
            Toast.makeText(this,"You cannot have less than 1 cup of coffee",Toast.LENGTH_SHORT).show();
            return;}
        quantity=quantity-1;
        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(String.valueOf(number));//or we can use ("" + number);
    }



    /**
     * This method displays the given text on the screen.
     */
    private void displayMessage(String message) {
        TextView orderSummaryTextView = (TextView) findViewById(R.id.price_text_view);
        orderSummaryTextView.setText(message);
    }

    /**
     * Calculates the price of the order.
     *
     * @return total price
     */
    private int calculatePrice(int extra) {
        int price = quantity * (5 + extra);
        return price;
    }
}

Кроме того, где я должен его вставить: в OnCreate или в любое другое место, потому что переменные этого флажка используются в функции submitorder (которые активируются при нажатии последней кнопки) ??

...