Android Development – Passing data to another Activity

Şu sıralar çalıştığım şirket için android geliştirme yapıyorum. Daha önceden de ufak tefek bir şeyler yapmış olsamda Android’in baya bir yol kat ettiğini söylemek mümkün. Fakat hala baş ağrısı olabilecek şeyler var. Bunları daha sonra tecrübelerimle deneyimleyip burada yazacağım.

Şimdi ilk olarak bahsetmek istediğim ve bir çok android’e geçen developer’ın ihtiyacı olacak bir snippet’dan bahsedeyim. Main activityniz var ve About activity’e bir string göndermek istiyorsak bunu nasıl yapbiliriz ? iOS’de bunu yapabilmek için üç yol var bunlardan birisi “NSNotificationCenter(KVO) yani Key Value Observing” ikincisi “Storyboard’ın segue’i kullanarak gönderceğimiz viewcontroller’a set etmek” üçüncüsü ise “Delegate” metodu.

Android’de bunu daha derine inemedim henüz ancak daha hoş olduğunu düşündüğüm bir yöntem ile yapıyor. Intent üzerinden “putExtra” metodunu kullanıyor. Yani şöyle;

MainActivity

Intent secondIntent = new Intent(MainActivity.this, SecondActivity.class);
				secondIntent.putExtra("inputValue", editText.getText().toString());
				startActivity(secondIntent);

SecondActivity

TextView titleTextView = (TextView) findViewById(R.id.textView2);
		
		Bundle extras = getIntent().getExtras();
		
		if(extras != null) {
			titleTextView.setText(extras.getString("inputValue"));
		}

;

Buradan istediğimiz datayı kontrol edip, elde edebiliriz. Tabii ki bu işlemleri onCreate metodunda yaptım.

Kaynak : http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-in-android

Başlığı ingilizce atıp içeriği türkçe yazmamın sebebi genel olarak aramların çoğunlukla ingilizce olarak aranmasından kaynaklanmaktadır. 🙂

Advertisements

Java HasMap – Key & Value

Java’da şuana kadar ilerlediğim kadarıyla bir çok data tutan collection mevcut. Çeşitli ihtayaçlar için bir çok collection tipi geliştirilmiş. Bunlardan hoşuma giden actionscript’de “Dictionary” sınıfı olarak geçen “HasMap” kavramından bahsedeyim kısaca.

Buradaki amaç sadece string türündeki veriyi key-value yani anahtar değeri ve içeriği olarak saklıyor. Yani Primitif bir yapıya sahip değil bu açıdan da gayet kullanışlı verilen değerleri string türünden arayıp silme işlemini dinamik olarak yapmanızı sağlıyor. Örnek vermek gerekise bir tablomuz var ve tablomuzun adı “Tablo 1” ve bunun key değeri ise “Tablo1” burada eğer biz “Tablo 1” tablosunu silmek istersek HasMap’in “remove()” metoduyla ismini vererek hemen halledebiliyoruz.

Map<String, String> hasMapOrnek = new HashMap<String, String>();
		// hasMap collectiona değer set ederken "put" yardımcı metodunu kullanıyoruz
		hasMapOrnek.put("anahtar1", "value1");
		hasMapOrnek.put("anahtar2", "value2");
		hasMapOrnek.put("anahtar3", "value3");
		
		System.out.println(hasMapOrnek.get("anahtar2"));
		
		// value2 değerini silmek istiyorsam
		hasMapOrnek.remove("anahtar2");