kodbankasi http://kodbankasi.org/kodbankasi

Android Intent ile veri taşıma

Intent androidde activity ve servislerin başlatılması için tetiklenmesidir. Bu tetikleme bir mesaj şeklinde gerçekleşir. Bu mesaj da amacınızın ne olduğunuzu belirtmeniz gerekir. Eğer başka bir activity’e geçiş yapılacaksa veya herhangi bir servis sağlanacaksa bu belirtilmelidir.

Intent ile sayfalar arası veri aktarımı da gerçekleştirilir.Bu yazıda Intent kullanarak sayfalar arası geçiş ve veri aktarımını göreceğiz.Intent ile sayfalar arası geçiş işlemi aşağıdaki şekilde gerçekleşiyor.

Intent intent = new Intent(MainActivity.this,yenisayfa.class);
startActivity(intent);

İlk satır ile intent nesnesi oluşturup açık bir şekilde niyetimizi belli ediyoruz. Burada oluşturduğumuz başka bir class’a geçiş için nesneye bulunduğu class’ın context’i ve açılmak istenen class’ın tam ismi yazılıyor. İkinci satırda ise startActivity işlem gerçekleştiriliyor. Yalnız son bir işlem kalıyor oda AndroidManifest dosyasına yeni bir activity eklemek.

  <activity android:name=".yenisayfa"></activity>

AndroidManifest dosyasında yeni bir activity tanımladık. Şimdi veri taşıma için layout’u düzenleyelim bir tane editext ve bir tane buton ekliyoruz.

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<EditText android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<Button android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:text="Yeni sayfa"/>
</LinearLayout>

Burada edittext’e girilen değeri altındaki butona basıldığında intent ile taşımaya çalışacağız. Edittext ve Button’u tanıttıktan sonra butonun onclicklistener’ına aşağıdaki kodları yazalım.


Intent intent = new Intent(MainActivity.this,yenisayfa.class);
intent.putExtra("isim",name.getText().toString());
startActivity(intent);

Kodlardan da anlaşıldığı gibi geçiş işlemi için yenisayfa isimli yeni bir class oluşturdum. Bu class’ta yapacağım işlem taşınan veriyi çekmek oldu. Ve çektiğim veriyi textviewde gösterdim bu kodlarda aşağıdaki gibidir.

text.setText( getIntent().getExtras().getString("isim"));

Bu satırda mainactivity class’ında putextra ile gönderdiğimiz tag name’i isim olan değişkeni ekrana yazdırmak oldu.MainActivity’de kullandığım yazdığım kodlar;

public class MainActivity extends Activity {
EditText name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button buttonYeniSayfa = (Button) findViewById(R.id.button);
name = (EditText) findViewById(R.id.name);
buttonYeniSayfa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,yenisayfa.class);
intent.putExtra("isim",name.getText().toString());
startActivity(intent);
}
});
}

yenisayfa.class

public class yenisayfa extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_yeni);
TextView text = (TextView) findViewById(R.id.veri);
text.setText( getIntent().getExtras().getString("isim"));
}

intentintentputextra

Bir önceki yazımız olan Javada ++ ve -- operatörleri başlıklı yazımızı da inceleyebilirsiniz.

6 Yorumlar

  1. Merhaba yazılarınızı ilgiyle takip ediyorum. QR kod kullanmayla ilgili bir makale yazabilirseniz çok sevinirim.

  2. Güzel ve açıklayıcı bir yazı olmuş. Bikaç anlamadığım yeri sayenizde hallettim.

  3. İntentler olmadan geçiş sayfalar arası geçiş yapmak mümkün değil sanırım. Aslında android diye bir dil yok herşeyi java ile yapıyoruz sadece xml üzerine java yazmak gerekiyor.

  4. ramazan pullu

    name = (EditText) findViewById(R.id.name); kısmında hata var sondaki name yerine editText in ismi gelmeli yani
    name = (EditText) findViewById(R.id.editText2); gibi

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.

Bu yazı da ilginizi çekebilir !

accelerometer

Android Sensör Kullanımı

Bir süre ara verdiğimiz android derslerimize kaldığımız yerden devam ediyoruz. Bir önceki makalemizde options menü ...