Sto se tice ovog problema.
Postoji nekoliko nacina, ali da kazemo da je ovaj najrazumniji i najjednostavniji.
Pre nego sto pocnem samo prihvati da ja layout, .xml, activity, view ili kako god da se to ispravno zove zovem FORMA (to je ono sto vidis) :)
Recimo da imas 2 forme (tj 2 xml fajla ili kako god).
I da hoces sledecu funkcionalnost:
1. sa prve da predjes na drugu
2. sa druge da se vratis na prvu (ovo ne mora da se implementira jer te Back button na Androidu automatski vraca na predhodnu formu)
3. sa prve da promenis boju drugoj
Da krenemo redom.
Znaci napravis novi projekat i imas klasu prva.java koja izgleda:
Code:
public class prva extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.prva);
}
}
- imas prva.xml u kojoj ti se nalazi 1 LinearLayout i 1 TextViewer koji ti govori Hello world ili tako nesto.(obrisi taj textViewer)
- sada napravis novi fajl u res/layout i nazoves ga druga.xml. I krirace ti prazan fajl. A ti iz prva.xml kopiras kod u drugu i dobijes 2 .xml-a
- u prva.xml prevuces 2 Buttona i 1 EditText. (1 button za prelazak na drugu formu, 1 button za promenu boje i editText za mesto gde ces upisivati zeljenu boju).
- sada u /src/ gde ti je prva.java kreiras druga.java fajl koji ti izgleda:
Code:
public class druga extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.druga);
}
}
sada moras ovu klasu da registrujes u AndroidManifestu kao activity.
Udjes u AndroidManifest->tab Application->Add...Aplication i u Name* upises druga.
E sada ulazimo u prva.java kako bi obezbedili da klikom na button1 predjemo na drugu formu.
Prvo ti je potrebno da povezes dugme i da mu dodas onClickListener:
Code:
Button button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(this)
Kada stavis da ti prva.java implementira onClickListener automatski ce ti biti ponudjeno da ti stavi nedostajacu metodu onClick(View v)
ona treba ovako da ti izlgeda:
Code:
public void onClick(View v)
{
switch(v.getId())
{
case R.id.button1:
Intent i;
i = new Intent(this, druga.class);
this.startActivity(i);
break;
}
}
I to ti je to sto se tice prelaska na drugu formu.
Menjanje boje drugoj formi.
Kako bi promenio boju moras informaciju o boji da cuvas u nekoj globalnoj promenljivoj. Ne mozes direktno iz prve forme da promenis drugoj formi boji (tj ne menjas formi direktno nego layoutu).
Najjednostavnije je da kreiras novu klasu Boja koja ce da sadrzi jednu static promenljivu tipa string npr. mojaBoja.
Boja u androidu se pamti na sledeci nacin #AARRGGBB RRGGBB ti je standardno RedGreenBlue a A ti je Alfa tj providnost. (tj pamti se kao neki int ali ovo je sasvim funkcionalno)
Sada kada upises neki string u onaj EditText i kliknes na dugme stavis da ti promeni promenljivu Boja.mojaBoja.
Znaci isto inicijalizujes button2, povezes ga, dodas mu onClickListener i otkucas u onaj onClick(View v):
Code:
case R.id.button2:
Boja.mojaBoja=editText.getText().toString();
break;
I onda je ostalo jos samo malo izmene u druga.java i druga.xml Koraci su sledeci:
-udjes u druga.xml, levim klikom na LinearLayout mu dodas ID. (npr layout)
-potom se vratis u druga.java i dodas u onCreate sledece:
Code:
LinearLayout layout=findViewByID(R.id.layout)
layout.setBackgroundColor(Color.parseColor(Boja.boja))
Samo obrati paznju da je ovo okvirni kod, pisan pola 'na slepo'. Moraces da uskladis imena promenljivih i da includujes odredjene pakete (za Color, Button i sl) mada ce ti Eclipse sam da odradi.
Pozdrav!