Как обмениваться занчениями переменных между классами. 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;