Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net

Anasayfa - Makale - Pratik - Android Programlama Ders 28: Intent Filter’in Uygulanması

Android Programlama Ders 28: Intent Filter’in Uygulanması

21 Mart 2014 - 20:00
- Mobil, Pratik

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

Geçen derslerimizde Intent ve klası kullanarak etkileşimi (Activity) çağırması öğrendik. Bu derste ikinci yöntemi kullanacağız; gizli niyet (Implicit Intent). Gizli niyet ile, action (faaliyet), data (veri) ve category (grup, sınıf) değerlere göre etkileşimler çağrılabilir. Konuyu hatırlamak için 20’ci dersi tavsiye ederim. Uygulamamız saati ve tarihi gösterecek. Bunu yapmak için üç tane etkileşimi (Activity) kullanacağız. Birinci etkileşim iki butonundan oluşacak. Birinci buton saati (Show time) ve ikinci tarihi (Show date) göstermek için kullanılacak. İkinci etkileşim saati gösterecek. Üçüncü etkileşim tarihi gösterecek. Projeyi oluşturalım:

  • Project name: P0028_IntentFilter
  • Build Target: Android 4.2
  • Application name: IntentFilter
  • Package name: tr.example.IntentFilter
  • Create Activity: MainActivity

Main.xml aşağıdaki kodla dolduralım:

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal">
 <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btnTime"
  android:text="Show time">
 </Button>
 <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btnDate"
  android:text="Show date">
 </Button>
 </LinearLayout>

  Sonraki aşamada MainActivity.java’yı  aşağıdaki kodla dolduruyoruz.

public class MainActivity extends Activity implements OnClickListener {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btnTime = (Button) findViewById(R.id.btnTime);
        Button btnDate = (Button) findViewById(R.id.btnDate);

        btnTime.setOnClickListener(this);
        btnDate.setOnClickListener(this);
    }

  @Override
  public void onClick(View v) {
    Intent intent;

    switch(v.getId()) {
    case R.id.btnTime:
      intent = new Intent("tr.technopat.intent.action.showtime");
      startActivity(intent);
      break;
    case R.id.btnDate:
      intent = new Intent("tr.technopat.intent.action.showdate");
      startActivity(intent);
      break;
    }
  }
}
 packageExplorer

Yukarıdaki kodda iki butonu belirttik ve işletici olarak etkileşimi (Activity) kullandık. OnClick metodunda basılan butonu buluyoruz ve Intent’i oluşturuyoruz. Intent’i oluşturmak için Intent (String action) tasarımcıyı kullanıyoruz. Intent nesnenin niteliği action (faaliyet). Action niteliğin amacı  kullanıcının istediği faaliyeti belirtmektir. Mesela ACTION_VIEW – görünüm, ACTION_EDIT – kurgu, ACTION_PICK – listeden seçmek, ACTION_DIAL – telefondan arama. Eğer faaliyeti (eylem) bir şeyle yapılıyorsa action ile beraber data (veri) parametre kullanılıyor. Yani action ne yapılması ve data neyle yapılmasını belirtiyor. Data hakkında gelecek derslerimizde daha ayrıntılı bahsedeceğiz. Kodda gördüğünüz gibi

tr.technopat.intent.action.showtime
tr.technopat.intent.action.showdate

eylemleri (action) kullandım. Birinci saati gösteren etkileşimi (Activity) ve ikinci tarihi gösteren etkileşimi çağıracak, tr.technopat satırının amacı tekel ismi belirtmektir. Çünkü sistemde birden fazla  intent.action.showtime komutu kullanılan uygulama olabilir. Intent ve action oluşturduktan sonra etkileşimi (Activity) oluşturmamız gerekiyor. Etkileşimi oluştururken  Intent action ile aynı action belirtmemiz gerekecektir. Etkileşimin oluşumu 19’cu derste ayrıntılı açıklanıyor. Oluşturduktan sonra AndroidManifest.xml dosyasında etkileşimleri belirtiyoruz. Sonraki aşamada aynı yerde ActivityTime dosyayı seçiyoruz Add butonuna basıyoruz ve IntentFilter seçildikten sonra Ok basıyoruz.

AddIntFilter

IntentFilter’de action oluşturuyoruz ve name (İsim) alanında tr.technopat.intent.action.showtime satırı giriyoruz.

action

Aynı yerde Category oluşturuyoruz ve name alanında android.intent.category.DEFAULT  satırı giriyoruz. ActivityDate etkileşim için aynı adımları gerçekleşiyoruz. ActivityTime etkileşim için time.xml layout’u oluşturuyoruz:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">
<TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/tvTime"
 android:text="TextView"
 android:layout_gravity="center_horizontal"
 android:layout_marginTop="20dp"
 android:textSize="30sp">
</TextView>
</LinearLayout>

Date.xml layout’u oluşturmak için time.xml layout’u kullanabiliriz. ActivityTime.java’yı oluşturuyoruz:

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

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

public class ActivityTime extends Activity {

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

    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    String time = sdf.format(new Date(System.currentTimeMillis()));

    TextView tvTime = (TextView) findViewById(R.id.tvTime);
    tvTime.setText(time);
  }
}

ActivityDate.java’yı oluşturuyoruz:

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

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

public class ActivityDate extends Activity {

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

    SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
    String date = sdf.format(new Date(System.currentTimeMillis()));

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

Yukarıdaki kodda şimdiki saati hesaplıyoruz ve textView kullanarak gösteriyoruz. Kaydedelim ve çalıştıralım:

mainActivity

Show time butonuna basıyoruz:

time

Saati görüyoruz. İntent tr.technopat.intent.action.showtime faaliyeti kullanarak etkileşimi buldu ve çalıştırdı. Bu etkileşimde (Activity) Intent Filtre’de faaliyet (action) aynıdır (tr.technopat.intent.action.showtime). Geri dönelim (Back ) ve Show date butonuna basalım.

date

Ders Sonu Notları:

Bu derste Implicit Intent (Gizli niyet) nasıl çalıştığını uygulamayı kullanarak gördük. Sonraki derste aynı uygulamayı geliştirerek Intent Filter’in ve action’un özellikleri araştıracağız.

Etiketler: actionAndroidAndroid programlamadersEclipseeğitimImplicit IntentIntentFilterişletim sistemiMobilPratikprogramlamarehberShow dateShow timeteknoloji
Paylaş6PaylaşTweetYollaPaylaş
Victor Cuiumju

Victor Cuiumju

Yorum Yap Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

RSS Technopat Sosyal

  • Galaxy Tab S8+ teşhir olarak alınır mı?
  • 3.000 TL'ye VDSL Modem Önerisi
  • Matepad 11.5 vs S10 Lite
  • 60 bin TL Gaming laptop önerisi
  • 20-24 bin TL arası laptop önerisi
  • EVGA supernova GT 850W 80+ Gold nasıldır?
  • GTA 4 için mod önerisi
  • GTX 1060 3 GB, GTX 1050 Ti 4 GB'dan daha mı güçlü?
  • İç ya da dış mimarların kullandığı programlar nelerdir?
  • Bir kale daha yıkıldı! Game Pass için büyük zam geldi

Technopat Video

Şu an oynayan

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Akıllı Saat
Huawei Watch GT 6 Pro

Apple’ı 20’ye katlayan saat! Huawei Watch GT 6 Pro incelemesi

Akıllı Saat
Technopat ofisi Eylül ayında neler aldı? 

Technopat ofisi Eylül ayında neler aldı? 

Giyilebilir Teknoloji

Teknoloji tutkunu Technopatların ortak adresi: Technopat.net!

Güncel teknoloji, internet, donanım, yazılım, oyun ve daha fazlası haber, makale ve videolar ile Technopat’ta sizlerle.


01010100 01100101 01100011 01101000 01101110 01101111 01110000 01100001 01110100

Kategoriler

  • Yapay Zeka
  • Ev Teknolojileri
  • Makale
  • Video

Sosyal Medya

Bağlantılar

  • Hakkında
  • Haber
  • Video
  • Sosyal
  • Çerez Politikası
© 2011-2025 Technopat. Tüm Hakları Saklıdır.
Netse
Çerez Onayı
Web sitemizi ziyaret ettiğinizde, kullanıcı deneyiminizi daha iyi hale getirmek, hizmetlerimizi size daha etkin bir şekilde sunabilmek için çerezler (cookies) ve benzeri araçlar kullanıyoruz. Çerezler, internet sitesinin düzgün çalışmasını sağlamak, içeriği kişiselleştirmek, sosyal medya özellikleri sağlamak ve trafik analizi yapmak için kullanılan küçük metin dosyalarıdır. Çerezleri nasıl kullandığımız ve kişisel verilerinizi nasıl işlediğimiz hakkında daha fazla bilgi almak için çerez politikamızı ve kişisel veri politikamızı inceleyebilirsiniz.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, sadece kullanıcının açıkça talep ettiği belirli bir hizmetin kullanılmasını sağlama amacıyla veya iletişimin elektronik iletişim ağı üzerinden iletilmesinin tek amacıyla yasal olarak kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından istenmeyen tercihlerin depolanması yasal amacıyla gereklidir.
İstatistikler
Sadece istatistiksel amaçlarla kullanılan teknik depolama veya erişim. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Pazarlama
Teknik depolama veya erişim, reklam gönderimi için kullanıcı profilleri oluşturmak veya kullanıcıyı bir web sitesinde veya birden fazla web sitesinde benzer pazarlama amaçları için takip etmek amacıyla gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri yönet
{title} {title} {title}
Onayı Yönet
En iyi deneyimleri sunmak için, cihaz bilgilerini saklamak ve/veya bunlara erişmek amacıyla çerezler gibi teknolojiler kullanıyoruz. Bu teknolojilere izin vermek, bu sitedeki tarama davranışı veya benzersiz kimlikler gibi verileri işlememize izin verecektir. Onay vermemek veya onayı geri çekmek, belirli özellikleri ve işlevleri olumsuz etkileyebilir.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, abone veya kullanıcı tarafından açıkça talep edilen belirli bir hizmetin kullanılmasını sağlamak veya bir elektronik iletişim ağı üzerinden bir iletişimin iletimini gerçekleştirmek amacıyla meşru bir amaç için kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından talep edilmeyen tercihlerin saklanmasının meşru amacı için gereklidir.
İstatistik
Sadece istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Sadece anonim istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Mahkeme celbi, İnternet Hizmet Sağlayıcınızın gönüllü uyumu veya üçüncü bir taraftan ek kayıtlar olmadan, yalnızca bu amaçla depolanan veya alınan bilgiler genellikle kimliğinizi belirlemek için kullanılamaz.
Pazarlama
Teknik depolama veya erişim, reklam göndermek için kullanıcı profilleri oluşturmak veya benzer pazarlama amaçları için kullanıcıyı bir web sitesinde veya birkaç web sitesinde izlemek için gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri görüntüle
{title} {title} {title}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

© 2025 Technopat
Sorularınız için Technopat Sosyal