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 30: Action’ı Intent’ten Okuyoruz

Android Programlama Ders 30: Action’ı Intent’ten Okuyoruz

26 Mart 2014 - 12:00
- Mobil, Pratik

Android programlama öğrenmeye devam ediyoruz. Bu derste intent filter’in ve action’ın çalışması daha iyi anlamak için geçen dersteki uygulamayı kullanacağız.

Önceki iki dersimizde action, intent ve intent filter’in çalışmasını öğrendik. Intent Filter’in bir özelliği daha var; birden fazla action içerebilir. Bu özelliği etkileşime (Activity) birden fazla faaliyet (eylem) yapmayı imkanı sunuyor. Etkileşim farklı Intent ve farklı action ile uyumu sağlayabiliyor.

İkinci güzel özelliği çağırılan etkileşim Intent’e ait action’u okuyabiliyor. Yani etkileşim Intent’in parametrelerini (action,data ve category) kullanabiliyor.

Uygulamada bir tane etkileşim oluşturacağız. Intent Filtre action = tr.technopat.intent.action.showtime ve action = tr.technopat.intent.action.showtdate için ayarlayacağız. Bu adımlardan sonra tek etkileşim saati ve tarihi gösterebilecek. Sonra Intent action =  tr.technopat.intent.action.showtime  veya action = tr.technopat.intent.action.showdate kullanarak tek etkileşimi çağıracağız. Etkileşimin saatini veya tarihini, yani hangisini göstermek istiyorsak action’u Intent’ten okuyacağız.  Yukarıdaki yazdığımı daha iyi anlamak için proje oluşturalım.

 

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

 

Main.xml ve MainActivity.java 28’ci dersteki gibi olacak. Yeni etkileşimi oluşturalım. İlk başta layout dosya info.xml olsun.

<?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/tvInfo"
  android:text="TextView"
  android:layout_gravity="center_horizontal"
  android:layout_marginTop="20dp"
  android:textSize="30sp">
 </TextView>
 </LinearLayout>

 

Ekranda bir tane TextView olacak.

Etkileşimi oluşturalım. İsmi Info.java olsun.

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

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

public class Info extends Activity {

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

    // Activity cagirilan Intenti aliyoruz
    Intent intent = getIntent();
    //Intenten action okuyoruz
    String action = intent.getAction();

    String format = "", textInfo = "";

    // actiona gore degiskenleri dolduruyoruz 
    if (action.equals("tr.technopat.intent.action.showtime")) { 
      format = "HH:mm:ss";
      textInfo = "Time: ";
    }
    else if (action.equals("tr.technopat.intent.action.showdate")) { 
      format = "dd.MM.yyyy";
      textInfo = "Date: ";
    }

    // format degiskene gore 
    // datetime degiskene saati veya tarihi aliyoruz 
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    String datetime = sdf.format(new Date(System.currentTimeMillis()));

    TextView tvDate = (TextView) findViewById(R.id.tvInfo);
    tvDate.setText(textInfo + datetime);
  }
}

 

getIntent() metodu kullanarak Intent’i alıyoruz ve action’a göre metni (TextView) ekrana çıkarıyoruz.

Yeni etkileşimi Manifest’e kayıt etmesini ve Intent Filter ile beraber iki action, category oluşturmayı unutmuyoruz. Label alanında Date/time info giriyoruz.

manifest

Kaydedelim ve çalıştıralım.

Show time butonuna basalım. Aşağıdaki verdiğim resmi görebilirsiniz:

timeButton

Sistem bize iki seçimi sunuyor. Date/time info oluşturduğumuz etkileşim. Sorun Intent Filter seçimi nereden aldığını? Cevabı geçen dersten ActivityTime etkileşimi. Intent Filter ismi, label alanında boş kaldığından kaynaklıyor.

Date/time seçildiği zaman bugünkü oluşturduğumuz etkileşimi çalıştırıyor.

time

IntentFilter seçildiği zaman geçen dersten etkileşimi gösteriyor. Şimdi Show date butonuna basalım:

showDate

Yine Date/time info ve iki tane geçen dersten kalan etkileşimi görüyoruz. Tüm etkileşimler Intent Filtre’de action = tr.technopat.intent.action.showdate içeriyorlar. Date/time info seçelim:

date

Ders Sonu Notları:

Bu derste tek etkileşimi (Activity) farklı action’ları kullanarak çağrılabilmeyi gördük. Etkileşim action’ı okuduktan sonra gerekli işlemleri gerçekleştiriyor. Intent etkileşimi aradığı zaman tüm sistemi araştırıyor. Bizim örnekte sistemde geçen derslerden kalan etkileşimleri de bulmuş. Gelecek derste Intent’i kullanarak verileri (Data) göndermeyi öğreneceğiz.

Etiketler: actionactivityAndroidAndroid programlamacategorydatadersgetIntentIntent Filterişletim sistemilabelmain xmlMainActivity.javaManifestprogramlamashowdateshowtimeteknolojiTextView
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

  • M.2 SSD sürücü eksik hatası veriyor
  • 2500TL manyetik klavye önerisi
  • IPhone fanboylarının hissettiği
  • CODE VEIN, 137 TL!
  • PlayStation 5 vs PC
  • GTX 1060 sistemde CS2 çöküp duruyor
  • 2. el Kindle alınır mı?
  • RTX 5080 4K performansı nasıl?
  • HP Pavilion 2019 GTX 1650 Ti alınır mı?
  • GIMP 3 PNG dosyası eklerken çöküyor

Technopat Video

Şu an oynayan

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

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
Gigabyte AORUS FO27Q5P: 500 Hz QD-OLED ile rekabetçi oyunculara özel monitör

Gigabyte AORUS FO27Q5P: 500 Hz QD-OLED ile rekabetçi oyunculara özel monitör

Haber

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