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 32: Etkileşimden Sonuç Almak

Android Programlama Ders 32: Etkileşimden Sonuç Almak

8 Nisan 2014 - 13:00
- Mobil, Pratik

Android Programlama Ders 32‘de StartActivityForResult metodu kullanarak etkileşimden sonucu almayı öğreneceğiz.

Bazen etkileşimi (Activity) çağırıp bir şey yapıyoruz ve sonucu almamız gerekiyor. Mesela cep telefondan mesaj göndereceğimiz zaman gönderilecek kişiyi listeden seçiyor ve mesajı gönderiyoruz. Burada liste çağırıldığı zaman yeni etkileşimi çağırıyorsunuz ve sonuç olarak bu etkileşim size seçilen kişiyi gönderiyor.

Daha ayrıntılı buradan ve buradan  okuyabilirsiniz.

Uygulamayı oluşturup bu konuyu daha ayrıntılı inceleyelim. Uygulamamız iki ekrandan oluşacak. Birinci ekrandan ikinci ekranı çağrılacak. İkinci ekranda verileri girip birinci ekrana göndereceğiz. Mesela giriş alanında kişinin isminin girilmesini isteyeceğiz.

Yeni bir proje oluşturalım:

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

Main.xml’i açalım ve ekranı oluşturalı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="vertical">
 <Button
 android:id="@+id/btnName"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center_horizontal"
 android:layout_margin="20dp"
 android:text="Input name">
 </Button>
 <TextView
 android:id="@+id/tvName"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center_horizontal"
 android:text="Your name is ">
 </TextView>
 </LinearLayout>

Ekranda TextView ismini gösterecek ve buton ikinci etkileşimi çağrılacak.

MainActivity.java dosyasını açıyoruz ve kodu yazıyoruz.

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

  TextView tvName;
  Button btnName;

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

        tvName = (TextView) findViewById(R.id.tvName);
        btnName = (Button) findViewById(R.id.btnName);
        btnName.setOnClickListener(this);

    }

  @Override
  public void onClick(View v) {
    Intent intent = new Intent(this, NameActivity.class);
    startActivityForResult(intent, 1);
  }

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (data == null) {return;
 String name = data.getStringExtra("name");
tvName.setText("Your name is " + name);
}
}

TextView, butonu belirtiyoruz ve işletici ayarlıyoruz. OnClick metodunda Intent’i oluşturuyoruz ve ikinci etkileşimin klasını belirtiyoruz. Intent’i göndermek için startActivityForResult kullanıyoruz. StartActivityFor Result kullandığımız zaman MainActivity etkileşim NameActivity için ana etkileşim oluyor. NameActivity kapandığı zaman MainActivity etkileşimde onActivityResult metodu çalıştırılıyor. onActivityResult startActivityForResult’ın açıldığını, etkileşimin kapandığını sinyal veriyor.

startActivityForResult parametre olarak Intent ve requestCode gönderiyor. requestCode – tanımlamak için gereklidir. Bu derste onu belirleyeceğiz (requestCode = 1) ve sonraki derste onun amacını ayrıntılı açıklayacağız.

onActivityResult’a aşağıdaki verdiğim parametreleri görebiliyorsunuz:

requestCode – startActivityForResult’taki gibi tanımlayıcıdır. Onu kullanarak hangi etkileşimden (Activity) geldiğini belirtiyoruz.

resultCode – dönüş kodu. Çağrının başarılı olup olmadığını kontrol ediyor.

data – gönderen verileri Intent’i içeriyor.

requestCode ve resultCode şu anda kullanmayacağız. Gelecek derste daha ayrıntılı ilgileneceğiz. data’yı kullanarak name (İsim) nesneyi alacağız ve TextView’de değeri göstereceğiz.

name.xml ekranı oluşturalım:

<?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">
<LinearLayout
 android:id="@+id/linearLayout1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_margin="10dp">
<TextView
 android:id="@+id/textView1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Name">
</TextView>
<EditText
 android:id="@+id/etName"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginLeft="10dp"
 android:layout_weight="1">
<requestFocus>
</requestFocus>
</EditText>
</LinearLayout>
<Button
 android:id="@+id/btnOK"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center_horizontal"
 android:text="OK">
</Button>
</LinearLayout>

Yukarıdaki kodda ekranda giriş alanında ismi gireceğiz ve Ok butonuna basacağız.

NameActivity klası oluşturuyoruz ve Manifest dosyasında onu kayıt ediyoruz:

 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class NameActivity extends Activity implements OnClickListener {

  EditText etName;
  Button btnOK;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.name);

    etName = (EditText) findViewById(R.id.etName);
    btnOK = (Button) findViewById(R.id.btnOK);
    btnOK.setOnClickListener(this);
  }

  @Override
  public void onClick(View v) {
    Intent intent = new Intent();
    intent.putExtra("name", etName.getText().toString());
    setResult(RESULT_OK, intent);
    finish();
  }
}

OnClick metodunda Intent’i oluşturuyoruz ve giriş alanından (etName) verileri Intent’e yerleştiriyoruz. setResult metodu intent’i ana etkileşime (MainActivity) gönderiyor. Ve RESULT_OK parametre çağrının başarılı olduğunu belirtiyor. Bu parametre resultCode’a gönderiliyor. finish metodu kullanarak NameActivity etkileşiminin çalışmasını bitiriyoruz. Ve sonuç MainActivity’e gönderiliyor. Manifest dosyasında NameActivity etkileşimini kaydetmeyi unutmuyoruz.

Kaydedelim ve çalıştıralım. Birinci ekranı görüyoruz:

firstActivity

İsmi girmek için butona basıyoruz.

İsmi giriyoruz ve OK butonuna basıyoruz.

OmerAslan

Sonucu gösteren birinci ekranı (MainActiivity) görüyoruz.

secondActivity

 

Ders Sonu Notları:

Bu derste MainActivity’de  Intent’i oluşturduk. Intent’e (Explicit Intent– Açık niyeti) NameActivity etkileşimi belirtik. startActivityForResult metodu kullanarak Intent’i çalıştırdık. NameActivity etkileşimde giriş alanında ismi girdikten sonra OK butonuna bastık. Intent oluştu ve bu Intent girdiğimiz ismi tutuyor. setResult metodu bu Intent’i ana etkileşime (MainActivity) gönderiyor. MainActivity etkileşimde alan sonucu onActivityResult metodu gerçekleşiyor. Burada Intent’i açıyoruz ve gönderen verileri TextView kullanarak ekranda gösteriyoruz.

Sonraki derste onActivityResult metodunda bulunan requestCode ve resultCode parametreleri detaylı inceleceğiz.

 

 

Etiketler: AndroidAndroid programlamadatadersIntentonActivityResultprogramlamarequestCodeResult_OKresultCodeSeriStartActivityForResultteknolojiuygulamaYazılımyeni
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

  • 100Mbit Wi-Fi 5 destekleyen evde TP-Link Archer VX1800v kullanılır mı?
  • 40.000 TL'ye kadar sistem önerisi
  • 10.000 TL'ye Gigabit router tavsiyesi
  • Detroit: Become Human 399 TL!
  • 650.000 TL'ye araba önerisi
  • TYT fen nasıl çalışılır?
  • Zula ve Point Blank hala oynanır mı?
  • Creative Sound BlasterX G6 2400TL
  • iPhone 17 serisi farklı ekran panelleri kullanıyor
  • Mortal Kombat 11 35 TL

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