Anasayfa Mobil Android Programlama Ders 29: Intent Filter Uygulamanın Devamı

Android Programlama Ders 29: Intent Filter Uygulamanın Devamı

Android programlama öğrenmeye devam ediyoruz. Bu derste intent filtrenin çalışmasını daha iyi anlamak için, geçen dersteki uygulamayı geliştireceğiz.

Geçen derslerimizde Implicit Intent (Gizli niyeti) konusundan bahsettik. Konuyu daha iyi anlamak için uygulamaya bir etkileşimi daha ekleyeceğiz. Etkileşim Intent Filter’i kullanılacak. Amacımız uygulama etkileşimi (Activity) aradığı zaman birden fazla etkileşimi bulsun. Bunu sağlamak için etkileşimde aynı action’u  = tr.technopat.intent.action.showdate (faaliyet) kullanacağız. Yeni etkileşim yine tarihi gösterecek ama biraz başka formatta. Yeni etkileşimin ismi ActivityDateEx olsun. Layout dosya aynı kalsın date.xml.

ActivityDateEx oluşturalım:

import java.sql.Date;
 import java.text.SimpleDateFormat;

 import android.app.Activity;
 import android.os.Bundle;
 import android.widget.TextView;

 public class ActivityDateEx extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.date);

     SimpleDateFormat sdf = new SimpleDateFormat("EEE, MMM d, yyyy");
     String date = sdf.format(new Date(System.currentTimeMillis()));

     TextView tvDate = (TextView) findViewById(R.id.tvDate);
     tvDate.setText(date);
   }
 }

 

Kodda gördüğümüz gibi tarih formatında tek bir fark vardır. Uygulamayı kaydedelim ve çalıştıralım. Show date butonuna basıyoruz ve aşağıdaki gibi seçimi görüyoruz:

IntentFilter

 

Intent iki etkileşimi (Activity) bulmuş ve uygulamanın ve package explorer’ın ismini gösterdi. İki etkileşim de bizim uygulamaya ait o yüzden hangi etkileşimin ne olduğunu anlamak zor oluyor. Bu problemi çözmek için isimleri değiştireceğiz. Manifest dosyasında etkileşim (Activity) için label (Etiket)özelliği değiştireceğiz.

label

Date basic ActivityDate için

Date extended ActivityDateEx için

Kaydedelim ve çalıştıralım. Show date butonuna basıyoruz ve aşağıdaki gibi seçimi görüyoruz:

Date basic

Böyle daha iyidir. Date extended seçildiği zaman ActivityDateEx etkileşimi karşımıza geliyor.

Eğer projede bir zorluk çekiyorsanız yardım için aşağıda Manifest dosyasının kodunu veriyorum.

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="tr.example.intentfilter"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="tr.example.intentfilter.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="ActivityTime">
            <intent-filter>
                <action android:name="tr.technopat.intent.action.showtime"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
        <activity android:name="ActivityDate" android:label="Date Basic">
            <intent-filter>
                <action android:name="tr.technopat.intent.action.showdate"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
        <activity android:name="ActivityDateEx" android:label="Date extended">
            <intent-filter>
                <action android:name="tr.technopat.intent.action.showdate"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
    </application>

</manifest>

 

Bu dersimizde Intent, Intent Filter ve action  uygulamayı kullanarak çalışmanın prensiplerini daha ayrıntılı araştırdık. Gelecek derste action’u Intent’ten okumayı öğreneceğiz.