StartActivity () üzerinde bir Paket mi Geçiyorsunuz?


Yanıtlar:


426

Birkaç seçeneğiniz var:

1) kullanın Paketi dan Niyet :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) Yeni bir Paket oluşturun

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3) Niyetin putExtra () kısayol yöntemini kullanın

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);


Ardından, başlatılan Etkinlik'te, bunları şu yolla okuyacaksınız:

String value = getIntent().getExtras().getString(key)

NOT: Paketler tüm ilkel türler, Parcelables ve Serializable'lar için "get" ve "put" yöntemlerine sahiptir. Ben sadece gösteri amaçlı Dizeleri kullandım.


20

Paketi Niyetten kullanabilirsiniz:

Bundle extras = myIntent.getExtras();
extras.put*(info);

Veya paketin tamamı:

myIntent.putExtras(myBundle);

Bu aradığınız şey mi?


1
Ve sonuçta elde edilen niyetten daha önce depolanmış olanı almak için getIntent (). GetExtras (). Get * () öğesini çağırırsınız.
yanchenko

16

Android'de bir Etkinlikten Etkinliğe veri aktarma

Amaç, eylemi ve isteğe bağlı olarak ek verileri içerir. Veriler, niyet putExtra()yöntemi kullanılarak başka bir etkinliğe aktarılabilir . Veriler ekstra olarak iletilir ve vardır key/value pairs. Anahtar her zaman bir dizedir. Değer olarak int, float, chars, vb. İlkel veri türlerini kullanabilirsiniz. Parceable and SerializableNesneleri bir aktiviteden diğerine geçirebiliriz .

Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);

Android etkinliğinden paket verileri alma

getData()Intent nesnesindeki yöntemleri kullanarak bilgileri alabilirsiniz . Niyet amacı ile alınabilir getIntent()yöntem.

 Intent intent = getIntent();
  if (null != intent) { //Null Checking
    String StrData= intent.getStringExtra(KEY);
    int NoOfData = intent.getIntExtra(KEY, defaultValue);
    boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
    char charData = intent.getCharExtra(KEY, defaultValue); 
  }

6

Paketi kullanarak değerleri bir etkinlikten başka bir etkinliğe geçirebilirsiniz. Mevcut etkinliğinizde bir grup oluşturun ve paketi belirli bir değer için ayarlayın ve bu paketi hedefe iletin.

Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);

Şimdi NewActivity'nizde bu paketi alabilir ve değerinizi geri alabilirsiniz.

Bundle bundle = getArguments();
String value = bundle.getString(key);

Verileri niyetten de aktarabilirsiniz. Mevcut etkinliğinizde böyle bir niyet belirleyin,

Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);

Şimdi NewActivity'nizde bu değeri böyle bir niyetten alabilirsiniz,

String value = getIntent().getExtras().getString(key);

Neden intent nesnesi getExtra ve putExtra yöntemlerine sahipken bir paket kullanıyorsunuz?
Psychosis404

0

Bu, içinde bulunduğunuz aktiviteyi yazın:

Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);

NextActivity.java'da

Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));

Bu benim için çalışıyor, deneyebilirsiniz.

Kaynak: https://www.c-sharpcorner.com/article/how-to-send-the-data-one-activity-to-another-activity-in-android-application/


0

bu kodu ilk etkinliğinizde kullanabilirsiniz :

 Intent i = new Intent(Context, your second activity.class);
        i.putExtra("key_value", "your object");
        startActivity(i);

ve ikinci etkinlikte nesne elde edin :

 Intent in = getIntent();
    Bundle content = in.getExtras();
   // check null
        if (content != null) {
            String content = content_search.getString("key_value"); 
    }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.