Explicit ve Implicit  Intent kavramları  ve sayfa geçişleri

Diğer android ders yazılarını görmek için TIKLAYINIZ

Dersin videolu anlatımı için TIKLAYINIZ.

İlk olarak yeni bir proje açtıktan sonra aşağıdaki gibi ekranda 2 adet layout ve 2 adet java classımız olacak şekilde ayarlıyoruz.

Aşağıdaki ekran görüntüsünde olduğu gibi Activity_main.xml belgesine gelerek tasarım ekranımızı oluşturacağız.Ekrandaki gibi Linearlayout ve butonları koyup idlerini 1.buton için siteyegit, 2.buton için ayarlaragit şeklinde ayarlıyoruz.

Daha sonra ayarlar_ekrani_activity java clasına gelerek aşağıdaki kodları yazıyoruz.

Kod açıklaması:

Burada eğer bu java çalıştığında açılacak sayfa yani açılacak layout ayarlar_ekrani.xml olan sayfamız olacaktır. Bu class o sayfayı temsil etmektedir.

Daha sonra MainActivity clasımıza geliyoruz ve asıl kodlarımı yazmaya başlıyoruz. Aşağıda görüldüğü gibi kodlar yazılmalıdır.

Kod açıklaması:

1 kısım için yani ilk buton için burada butonu çağırdık ve butona tıkladığımızda bir setOnclikListener olayı ile tıklandığı anda Intent oluşturuyoruz.

İntent nedir?

aktivite, servis, yayın alıcılar, içerik sağlayıcılar, diğer uygulamalar arasında haberleşmeyi sağlar.

Explicit(açık) Intent : aktiviteler arası geçiş. (Bundle, Intent)

Implicit(üstü kapalı) Intent: ( Telefon numarası yapmak, mesj, mail göndermek, foto ve video çekmek)

Burada üstü kapalı bir intent uyguluyoruz çünkü tıklandığında www.robodeney.com sitesine gitmek için telefonda birden fazla tarayıcı içinden birisini seçerek ilerlememizi isteyecektir.

2 numaralı alanda da yine ayarlar butonu için tıklandığında bizim oluşturduğumuz ayarlar_ekrani.xml sayfasının açılması için ayarlar_ekrani_activity clasını çalıştırmaktadır.

 

Daha sonra androidManifest.xml belgemizin içerisine gidiyoruz ve burada yeni oluşturduğumuz ayarlar_ekrani_activity clasımızı tanıtmamız gerekiyor. Ekran görüntüsündeki gibi sayfamızı tanıtıyoruz çünkü ilk açılışta okunan belge androidmanifestdir.

KODLAR:

NOT: kodların package kısımları benim bilgisayarım göre olduğu için onları kendi bilgisayarınıza göre düzeltmeniz gerekmektedir ya da kodları alırken o kısımları almayınız.

Örnek: package=”com.example.mfurkan.myapplication”>

 

Activity_main.xml tasarım ekranı kodları:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:app="http://schemas.android.com/apk/res-auto"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
tools:context=".MainActivity">


    <LinearLayout
       
android:layout_width="match_parent"
       
android:layout_height="match_parent"
       
android:orientation="vertical">


        <Button
           
android:id="@+id/siteyegit"
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:text="siteye git" />


        <Button
           
android:id="@+id/ayarlaragit"
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:text="ayarlara git" />

    </LinearLayout>
</android.support.constraint.ConstraintLayout>

Ayarlar_ekrani.xml sayfası için herhangi bir tasarım yapmadan devam ediyoruz.

MainActivity java class kodları:
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button tarayicibasla = (Button) findViewById(R.id.siteyegit);
        tarayicibasla.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse("https://www.robodeney.com"));
                startActivity(intent);

            }
        });
        Button ayarlarButonu = (Button) findViewById(R.id.ayarlaragit);
        ayarlarButonu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, ayarlar_ekrani_activity.class);
                startActivity(intent);
            }
        });

    }
}

ayarlar_ekrani_activity java class kodları:

public class ayarlar_ekrani_activity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ayarlar_ekrani);
    }
}

AndroidManifest.xml kodları:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
       


    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
>

        <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
        <activity android:name=".ayarlar_ekrani_activity" android:label="@string/app_name">

            <intent-filter>
                <action android:name="android.intent.action.EKRANAYARLAR">
                </action>
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>
    </application>

</manifest>

 

Muhammed Furkan Zerey

Leave a Comment