Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.685 pregleda

Najnovija ↓

Laksi nacin za racunanje vise varijabli 02.01.2017. u 15:25 · pre 119 meseci
izmenjeno 1 put, poslednji put gojic 02.01.2017. u 18:15
  1. gojic02.01.2017. u 18:15zapis iz teksta poruke
#1
Pozdrav svima, pokusavam da napravim svoju android aplikaciju.Malu android aplikaciju.
O cemu se radi...dakle aplikacija oponasa meni iz restorana, kad korisnik cekira dorucak, nprm slanina i jaja, unese svoje ime aplikacija ponovi na ekranu te informacije. Ukoliko on zeli da uzme dva razlicita dorucka, aplikacija,naravno,sabere cene i ispise na ekranu.

Code:
 private int calculatePrice(boolean firstBreakfest, boolean secondBreakfest, boolean thirdBreakfest) {
        int price = 0;
       if (firstBreakfest && secondBreakfest){
           price = priceDish1 + priceDish2;
        }
       else if(firstBreakfest){
           price = priceDish1;
       }
       else if(secondBreakfest){
           price = priceDish2;
        }
       else if (thirdBreakfest){
           price = priceDish3;
       }

        return price;
    }

Ali sta ako korisnik hoce da izabere vise razlicitih jela, ne mogu u nedogled da dodajem ifpetlju.Ili,ipak,mogu?
Sve u svemu kod mi izgleda odvratno ovako sa brdo ifpetlji.

Koristim boolean, kada je zeljeni dorucak cekiran on prikazuje cenu i pratecu poruku.

e sad gde sam zapeo...u principu nisam ni zapeo,nego me zanima da li postoji laksi i, na oko lepsi, nacin da izracunam vise varijabli? Moj kod radi sasvim ok ali mi jako ruzno izgleda da imam na desetine if petlja. Probao sam da koristim switch/case ali ne moze sa boolean.E sad ne znam da li moze sa listama nesto da se uradi?

Ovako mi za sada aplikacija izgleda
http://i.imgur.com/6ukHSOQ.png

Kod aplikacije:
JAVA

Code:
public class MainActivity extends AppCompatActivity {
    int quantity = 1;
    public int priceDish1 = 320; //egs and bacon
    public int priceDish2 = 125; //omelet
    public int priceDish3 = 200; //pancakes

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


    public void submitOrder(View view) {
        CheckBox checkedBox = (CheckBox) findViewById(R.id.dish1);
        boolean firstBreakfest = checkedBox.isChecked();
        CheckBox checkedBox2 = (CheckBox) findViewById(R.id.dish2);
        boolean secondBreakfest = checkedBox2.isChecked();
        CheckBox checkBox3 = (CheckBox) findViewById(R.id.dish3);
        boolean thirdBreakfest = checkBox3.isChecked();
        EditText editText = (EditText) findViewById(R.id.name_of_user);
        String nameOfUser = editText.getText().toString();
        int price = calculatePrice(firstBreakfest, secondBreakfest,thirdBreakfest);
        String message = orderSummary(price, firstBreakfest, nameOfUser, secondBreakfest);
        displayMessage(message);
    }

    private int calculatePrice(boolean firstBreakfest, boolean secondBreakfest, boolean thirdBreakfest) {
        int price = 0;
       if (firstBreakfest && secondBreakfest){
           price = priceDish1 + priceDish2;
        }
       else if(firstBreakfest){
           price = priceDish1;
       }
       else if(secondBreakfest){
           price = priceDish2;
        }
       else if (thirdBreakfest){
           price = priceDish3;
       }

        return price;
    }

    private String orderSummary(int price, boolean firstBreakfest, String nameOfUser, boolean secondBreakfest) {
        String dish1 = "Beacon and eggs";
        String dish2 = "Omelet";
        String message ="Your name: " + nameOfUser;
        message = message + "\nPrice: " + price + " rsd";
        if(firstBreakfest && secondBreakfest){
            message = message + "\nYour ordered " + dish1 + " and " + dish2;
        }
        else if (firstBreakfest) {
            message = message +  "\nYou ordered " + dish1;
        }
        else if (secondBreakfest) {
            message = message + "\nYou ordered " + dish2;
        }
        return message;
    }


    private void displayMessage(String message) {
        TextView priceTextView = (TextView) findViewById(R.id.order_summary);
        priceTextView.setText(message);
    }

}


Planiram da dodam jos jela, pa mi zato ovo pravi problem.

XML nisam stavio kontam da je nepotreban,ali ako pomaze stavicu kasnije.

Hvala svima.
Re: Laksi nacin za racunanje vise varijabli 04.01.2017. u 10:44 · pre 119 meseci #3
nastavi sa cekboxovima - u nekom momentu kada budes smisljao kako ces da omogucis da se jela lako dodaju i da im se menja cena, onda ce ti se ovo samo resiti
Re: Laksi nacin za racunanje vise varijabli 05.01.2017. u 07:44 · pre 119 meseci
izmenjeno 1 put, poslednji put plague 05.01.2017. u 08:00
  1. plague05.01.2017. u 08:00zapis iz teksta poruke
#4
Naravno da postoji bolji nacin.

Sa trenutnom postavkom trebalo bi napraviti bar tri klase ItemType, Item i Order.

Code (java):

public class ItemType {
    private String name;

    // constructor
    // get/set for properties
    // override equals and hashCode - Mandatory!  
}

public class Item {
    private String name;
    private ItemType type;
    private double price;
 
    // constructor
    // get/set for properties
    // override equals and hashCode - Mandatory!
}

public class Order {
    private Set<Item> items = new HashSet<>();
   
    public void addItem(Item item) {
        items.add(item);
    }

    public void removeItem(Item item) {
        items.remove(item);
    }

    public double calculateOrderCost() {
        double totalCost = 0;
        for (Item i : items) {
            totalCost += i.getPrice();
        }

        return totalCost;
    }
}
 

Trebalo bi napraviti i neki Servis koji ce ti vratiti dostupne Item-e bilo iz fajla ili konfiguracije.
Ako hoces da izbegnes ponovo kompajliranje/pakovanje aplikacije onda treba napraviti Web Service...
ItemType moze biti enum ako ces raditi iz fajla/konfiguracije.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme