iletişim bilgileri http://iletisimbilgileri.org//iletişim bilgileri

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

0,691