Merhaba
Bu Makalemizde Android programlama dersimizde Yeni sayfa olusturma Menü butonlarinin kullanimi ve sayfalar arasi geçisten bahsedecegim.
Ilk olarak yeni bir proje olusturuyorum.Olusturmus oldugum projenin src klasörünün altina new->class a basarak Activity2 adinda yeni bir java classi olusturuyorum.
Ayni sekilde olusturmus oldugum projenin res->layout klasörüne sag tiklayarak new->Android XML FILE ‘a basarak olusturmus oldugum Java class’ina bir layout olusturuyorum.
Simdi MainActivity java class’ini incelersek burda otomatik olarak tanimlanmis olan 2 adet metod görüyoruz
Bunlar OnCreate ve OnCreateOptionsMenu metod’u. OnCreate methodu Activity miz olusturuldugu zaman neler yapilacagini barindirir.Örn butonlar,listViewler vb. OnCreateOptionMenu ise menu butonlarinin veya menu kisminin islevlerini barindirir.
Simdi yeni olusturdugumuz Activity2 class’ina gidelim burda class’i tanimlarken kullanilan “public class Activity2 {} ” ye “ extends Activity” kodunu ekliyorum. Son hali “public class Activity2 extends Activity {}” olacak
Bu ifadeyi yazdiktan sonra bir hata alacagiz.bu hatanin sebebi Activity class’inin import edilmemis olmasidir. Kod satirinin solunda çikan ampul isaretine basip import Activity ‘i seciyoruz.bu sekilde Activity class’ini import etmis olduk.
Simdi activity2 classini açip sol üst menüden Source->Override/implements method seçenegini seçiyorum.
ve çikan pencerede OnCreate Bundle i seçiyorum.
Bu sayede yeni olusturdugumuz Activity’ e OnCreate Methodunu tanimlamis olduk
Simdi bu OnCreate Methodunun içine
“setContentView(R.layout.layout2)” kodunu ekliyorum.Bu kod sayesinde daha önce olusturmus oldugumuz layout’u bu Activity’e tanitmis olduk.
Simdi layout tasarimlarina geçelim
Activity_main layoutuna bir textView,textField ve bir buton ekliyorum.
Ve bu textViewin içine “Adiniz” yaziyorum.
Activity_main.xml ‘in içerigi
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText1" android:layout_alignBottom="@+id/editText1" android:layout_alignParentLeft="true" android:text="Adýnýz" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="24dp" android:layout_marginTop="102dp" android:ems="10" > <requestFocus /> </EditText> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_below="@+id/editText1" android:layout_marginTop="88dp" android:text="GÝT" /> </RelativeLayout>
Layout2 min içerigine ise bir Textview ve bir buton koyuyorum ve butonun içerigni geri dön olarak degistiriyorum.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="72dp" android:text=" Geri Dön" /> <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="72dp" android:text="" android:textAppearance="?android:attr/textAppearanceLarge" /> </RelativeLayout>
Simdi senaryomuz su sekilde olacak açilis sayfasina adini giren kullanici butona basicak ve yeni sayfada “ yazilim mutfagina hosgeldin xxxx” seklinde bir yaziyla karsilasicak.
Bunun için Main Activity’im de Editview ve Butonumu asagidaki kodlar ile tanitiyorum.
Button btn =(Button)findViewById(R.id.button1); EditText et=(EditText)findViewById(R.id.editText1);
Bu islemi yaptiginiz zaman hata alacaksiniz bunu ayni sekilde ampul isaretine basip import Button ve import EditText’i seçerek düzeltebilirsiniz.
Simdi butonuma bir Listener eklemem gerekiyor bunun için asagidaki kodu ekliyorum
btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } } });
Simdi eklemis oldugum listenerdaki OnClick methoduna su kodu ekliyorum
Intent intent=new Intent(MainActivity.this,Activity2.class); startActivity(intent);
Daha sonra proje dosyamizin içinde “AndroidManifest.xml” dosyasini açiyoruz ve XML görünümüne geçiyoruz.Burada “applicationun içerisine su kodlari yapistiriyoruz
<activity android:name="com.example.newscreenandmenu.Activity2" android:label="@string/app_name" > <intent-filter> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
Bu sekilde yeni Activity’mizi olusturmus olduk.
imdi Activity2.java sayfasini açiorum ve buraya ilk activitymi asagidaki kod ile import ediyorum
import com.example.newscreenandmenu.MainActivity;
Sonra layout’umdaki textView ve Buttonumu burada tanimliyorum.
Sonra asagidaki kodla textView’in içerigini degistiriyorum
txt.setText("Merhaba"+com.example.newscreenandmenu.MainActivity.user+"Yazilim mutfagina hosgeldin");
Son olarakta butonuma bir listener ekliyorum ve ilk sayfama dönmek için gerekli olan kodlarimi yaziyorum.
btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Editable kullanici=et.getText(); user=(String)kullanici.toString(); Intent intent=new Intent(MainActivity.this,Activity2.class); startActivity(intent); } });”
MainActivity’nin son hali
package com.example.newscreenandmenu; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.text.Editable; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { static String user; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn =(Button)findViewById(R.id.button1); final EditText et=(EditText)findViewById(R.id.editText1); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Editable kullanici=et.getText(); user=(String)kullanici.toString(); Intent intent=new Intent(MainActivity.this,Activity2.class); startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Activity2 ‘nin son hali
package com.example.newscreenandmenu; import android.app.Activity; import android.content.Intent; import com.example.newscreenandmenu.MainActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class Activity2 extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.layout2); TextView txt = (TextView)findViewById(R.id.textView1); Button btn =(Button)findViewById(R.id.button1); txt.setText("Merhaba \t"+ com.example.newscreenandmenu.MainActivity.user+" Yazýlým mutfaðýna hoþgeldin"); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(Activity2.this,MainActivity.class); startActivity(intent); } }); } }
Programin ekran görüntüleri
Programin kaynak kodlarina ise buradan ulasabilirsiniz