Как обмениваться занчениями переменных между классами. Java

У меня в классе MainActivity объявлен конструктор и паблик переменные

public class MainActivity extends Activity{

    public class pizza {

        int price;
        int count;

        void setCount(int x){

            this.count=x;
        }

        int getCount(){
            return this.count;
        }

        void setPrice(int x){
            this.price = x;
        }

        int getPrice(){
            return this.price;
        }

    }

    public pizza pepperoni = new pizza();
    public pizza calzone = new pizza();
    public pizza quattrostagioni = new pizza();
    public pizza quattroformaggi = new pizza();
    public pizza mexican = new pizza();

     ...
}

И при обращении из другого класса к этим переменным я получаю значение 0, вне зависимости от того какое значение было присвоено в ходе работы программы в MainActivityю Другая активити откуда непосредственно и происходит вызов переменных.


public class BasketPage extends Activity {
        List<Map<String, String>> pizzaNames = new ArrayList<>();

        /*public int pepperoniCounter;
        public int calzoneCounter;
        public int quattrostagioniCounter;
        public int quattroformaggiCounter;
        public int mexicanCounter;*/
        public String name;
        public String phoneNumber;
        public String street;
        public String home;
        public String porch;
        public String level;
        public String apprt;
        public String comment;
        public boolean b;

        WorkBD workBD;
        MainActivity mainActivity;



        public void creator() {
            System.out.println(mainActivity.pepperoni.getCount());
            if (mainActivity.pepperoni.getCount() != 0) {
                Map<String, String> map = new HashMap<>();
                map.put("text1", "Пепперони ");
                map.put("text2", mainActivity.pepperoni.getCount() + " шт.");
                pizzaNames.add(map);
            }
            if (mainActivity.calzone.getCount() != 0) {
                Map<String, String> map = new HashMap<>();
                map.put("text1", "Кальцоне ");
                map.put("text2", mainActivity.calzone.getCount() + " шт.");
                pizzaNames.add(map);
            }
            if (mainActivity.quattrostagioni.getCount() != 0) {
                Map<String, String> map = new HashMap<>();
                map.put("text1", "Четыре сезона ");
                map.put("text2", mainActivity.quattrostagioni.getCount() + " шт.");
                pizzaNames.add(map);
            }
            if (mainActivity.quattroformaggi.getCount() != 0) {
                Map<String, String> map = new HashMap<>();
                map.put("text1", "Четыре сыра ");
                map.put("text2", mainActivity.quattroformaggi.getCount() + " шт.");
                pizzaNames.add(map);
            }

            if (mainActivity.mexican.getCount() != 0) {
                Map<String, String> map = new HashMap<>();
                map.put("text1", "Мексиканская ");
                map.put("text2", mainActivity.mexican.getCount() + " шт.");
                pizzaNames.add(map);
            }
        }

        @Override

        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.bascket_page);
            mainActivity= new MainActivity();
            creator();
            ListView listView = (ListView) findViewById(R.id.titles);
            String [] from = {"text1" , "text2"};
            String [] fromik = {"ftext1" , "ftext2"};
            int [] to = {R.id.textok1 , R.id.textok2};
            int [] too = {R.id.ftext1 , R.id.ftext2};
            ListAdapter adaptiruy = new SimpleAdapter(this, pizzaNames, R.layout.adapter_backet, from, to);
            listView.setAdapter(adaptiruy);
            workBD = new WorkBD(this);
        }
         ...
}

Что я делаю не так? Как передавать эти переменные между классами без потери значений?

P.S. Значения присваиваю через вызов конструктора например pepperoni.setCount(1);


Ответы (1 шт):

Автор решения: DrMcSheen

объявляешь

public static String price;

в остальных прописываешь

import static твой пакгаз.MainActivity.price;
→ Ссылка