Aplikacje w Androidzie oparte są często na kilku przełączalnych widokach, na przykład pierwszy to menu, a drugi rysuje oparty o wybory z menu interfejs graficzny. W tym celu należy przełączać między sobą widoki Activity.
W tym celu tworzymy nowy Activity: po lewej nad MainActivity prawy klawisz myszy -> New -> Activity -> Rodzaj
Powiedzmy, że mamy button, który ma nas przekierować do nowego Activity. Musimy stworzyć obiekt typu Intent (oknoGry), który przełączy widok na Grafika2d (= nazwa klasy nowego widoku). Wewnątrz funkcji onClick tego buttona dodajemy na końcu
1 2 3 4 5 6 7 8 | Intent oknoGry = new Intent(getApplicationContext(), Grafika2d.class); String message = radioJezykButton.getText().toString(); //Przekazanie parametru do drugiego okna Activity: //tu mogą być pola tekstowe w układzie .putExtra("parametr", "wartosc"); oknoGry.putExtra("jezyk", radioJezykButton.getText().toString()); oknoGry.putExtra("instrument", radioInstrumentButton.getText().toString()); oknoGry.putExtra("gryf", radioFretboardButton.getText().toString()); startActivity(oknoGry); |
Natomiast w klasie Grafika2d odczytujemy parametry wewnątrz funkcji onCreate:
1 2 3 4 5 6 7 8 9 10 11 12 13 | protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // to usuwamy: setContentView(R.layout.activity_grafika2d); Intent oknoMenu = getIntent(); Intent oknoMenu = getIntent(); String message = "język: " + oknoMenu.getStringExtra("jezyk") + "; " + "instrument: "+oknoMenu.getStringExtra("instrument") + "; " + "gryf: "+oknoMenu.getStringExtra("gryf"); TextView textView = new TextView(this); textView.setTextSize(20); textView.setText(message); setContentView(textView); } |
To wszystko. Widoki będą się przełączać.