2016-04-14 21 views
0

Gerçekten garip buluyorum, bir tane hariç diğer değerleri alabiliyorum. İşte benim kod:intent.getStringExtra() dönen

Intent intent = new Intent(this.context, SecondActivity.class); 
intent.putExtra("contact", n.getContact()); 
intent.putExtra("email", n.getEmail()); 
intent.putExtra("address", n.getAddress()); 
intent.putExtra("test", "hello world"); 
context.startActivity(intent); 

Ve bu OnCreate() altındaki değerleri elde edersiniz koddur:

Intent intent = getIntent(); 
contact = intent.getStringExtra("contact"); 
email = intent.getStringExtra("email"); 
address = intent.getStringExtra("address"); 
test = intent.getStringExtra("test"); 

Her şey dize test haricinde iyi çalışır. Her zaman bana boş değer verecektir. Bunun için herhangi bir çözüm var mı?

Soru eklendi: Intent.putExtra(), ikinci parametrede alıntılanan metni artık kabul etmiyor mu? LOL

+1

n.getContact ve diğer yöntemlerin boş dönmediğinden emin misiniz? – crashOveride

+0

Oldukça emin. Bu yüzden neden bu özel satırın null döndüğünü merak ediyordum. – Glen

+0

Bana bir değer veriyor. Sadece son zamanlarda denedim. Bu gerçekten garip, bunu daha önce yapıyorum. Neden bu çizginin bana null verdiğini bilmiyorum. – Glen

cevap

-1

Intent myIntent=new Intent(MainActivity.this, ResultActivity.class); 
Bundle bundle=new Bundle(); 
bundle.putString("contact", n.getContact()); 
bundle.putString("email", n.getEmail()); 
bundle.putString("address", n.getAddress()); 
bundle.putString("test", "hello world"); 
myIntent.putExtra("MyPackage", bundle); 
startActivity(myIntent); 

Intent callerIntent=getIntent(); 
Bundle packageFromCaller= 
callerIntent.getBundleExtra("MyPackage"); 
String contact =packageFromCaller.getString("contact"); 
String email =packageFromCaller.getString("email"); 
String address= packageFromCaller.getString("address"); 
String test= packageFromCaller.getString("test"); 
ResultActivity.class

yılında veri
Intent intent = new Intent(this.context,SecondActivity.class); 
       intent.putExtra("contact", n.getContact()); 
       startActivity(intent); 

MainActivity.class verileri

Bundle data = getIntent().getExtras(); 
contact = data.getString("contact"); 
+0

Lütfen açıklamamı oku. Verileri nasıl geçeceğimi biliyorum. Bazı verileri koymak için 'Intent' kullandığımız için' Bundle' kullanmamalısınız. – Glen

0

olsun

göndermek

Umut. Sana yardım edecektir !!!

0

kullanımı getApplicationContext() yerine this.contextve startActivity yerine

İlk Etkinlik

Intent intent = new Intent(getApplicationContext(), SecondActivity.class); 
intent.putExtra("test", "hello world"); 
startActivity(intent); 

ikinci Aktivite context.startActivity kullanımı

Intent intent = getIntent(); 
intent.getStringExtra("test");