Menuler,Yeni pencere olusturma ve pencere geçisi

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

Kaynak kodu

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir