Tamamlayıcı Yanıt: Anahtar Dizesi için Adlandırma Kuralları
Gerçek veri aktarma süreci zaten cevaplanmıştır, ancak cevapların çoğu Niyet'teki anahtar adı için sabit kodlu dizeler kullanır. Bu, yalnızca uygulamanızda kullanıldığında genellikle iyidir. Ancak, belgelerEXTRA_*
standart veri türleri için sabitlerin kullanılmasını önerir .
Örnek 1: Intent.EXTRA_*
Tuşları kullanma
İlk aktivite
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(Intent.EXTRA_TEXT, "my text");
startActivity(intent);
İkinci aktivite:
Intent intent = getIntent();
String myText = intent.getExtras().getString(Intent.EXTRA_TEXT);
Örnek 2: Kendinizin tanımlanması static final
anahtarınızı
Biri varsa Intent.EXTRA_*
Strings ihtiyaçlarınızı yakışmıyor, önce etkinliğin başında kendi tanımlayabilirsiniz.
static final String EXTRA_STUFF = "com.myPackageName.EXTRA_STUFF";
Paket adını eklemek sadece anahtarı kendi uygulamanızda kullanıyorsanız sadece bir kuraldır. Ancak, diğer uygulamaların bir Amaçla arayabileceği bir tür hizmet oluşturuyorsanız, adlandırma çakışmalarını önlemek bir zorunluluktur.
İlk aktivite:
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(EXTRA_STUFF, "my text");
startActivity(intent);
İkinci aktivite:
Intent intent = getIntent();
String myText = intent.getExtras().getString(FirstActivity.EXTRA_STUFF);
Örnek 3: Bir String kaynak anahtarı kullanma
Belgelerde belirtilmemesine rağmen, bu cevap , etkinlikler arasındaki bağımlılıkları önlemek için bir String kaynağı kullanmanızı önerir.
strings.xml
<string name="EXTRA_STUFF">com.myPackageName.MY_NAME</string>
İlk aktivite
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(getString(R.string.EXTRA_STUFF), "my text");
startActivity(intent);
İkinci aktivite
Intent intent = getIntent();
String myText = intent.getExtras().getString(getString(R.string.EXTRA_STUFF));