Dapatkah seseorang tolong beri tahu saya bagaimana tepatnya menggunakan getExtra()
dan putExtra()
untuk niat? Sebenarnya saya punya variabel string, katakanlah str, yang menyimpan beberapa data string. Sekarang, saya ingin mengirim data ini dari satu aktivitas ke aktivitas lain.
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
String keyIdentifer = null;
i.putExtra(strName, keyIdentifer );
dan kemudian di SecondScreen.java
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.table);
TextView userName = (TextView)findViewById(R.id.userName);
Bundle bundle = getIntent().getExtras();
if(bundle.getString("strName")!= null)
{
//TODO here get the string stored in the string variable and do
// setText() on userName
}
}
Saya tahu itu adalah pertanyaan yang sangat mendasar tetapi sayangnya saya terjebak di sini. Tolong bantu.
Terima kasih,
Sunting: Di sini string yang saya coba sampaikan dari satu layar ke layar lainnya adalah dinamis. Itu adalah saya memiliki editText di mana saya mendapatkan string apa pun jenis pengguna. Kemudian dengan bantuan myEditText.getText().toString()
. Saya mendapatkan nilai yang dimasukkan sebagai string maka saya harus meneruskan data ini.
sumber
Jawaban:
Gunakan ini untuk "meletakkan" file ...
Kemudian, untuk mengambil nilai coba sesuatu seperti:
sumber
this.getActivity().getIntent().getExtras()
.Screen.java pertama
Screen.java kedua
sumber
Metode Terbaik ...
SendingActivity
RecievingActivity
/// cara terpendek untuk menerima data ..
// Ini membutuhkan api 12. // parameter kedua adalah opsional. Jika keyName adalah null maka gunakan
defaultkey
sebagai data.sumber
Inilah yang telah saya gunakan, semoga membantu seseorang .. sederhana dan afektif.
kirim data
dapatkan data
Bersulang!
sumber
Sangat mudah untuk diterapkan
intent
di Android .. Anda perlu beralih dari satu aktivitas ke aktivitas lain, kita harus dua metodeputExtra();
dangetExtra();
Sekarang saya tunjukkan contohnya kepada Anda ..Sekarang kita harus mendapatkan nilai dari
AnyKeyName
parameter, kode yang disebutkan di bawah ini akan membantu dalam melakukan iniKami dapat dengan mudah mengatur nilai penerimaan dari
Intent
, di mana pun kami membutuhkan.sumber
Tambahan kecil: Anda tidak harus membuat nama Anda sendiri untuk kunci, Android menyediakan ini, f.ex.
Intent.EXTRA_TEXT
. Mengubah jawaban yang diterima:sumber
ApplicationActivity
sumber
Perbarui di kelas Intent .
hasExtra()
untuk memeriksa apakah niat memiliki data pada kunci.getStringExtra()
secara langsung.Pass Data
Dapatkan Data
Selalu masukkan kunci dalam konstanta sebagai praktik terbaik.
sumber
PutExtraConstants
antarmuka?PutExtraConstants
kelas hanya berisi konstanta (public
,static
,final
). Jadi lebih baik menggunakan antarmuka untuk Konstanta.Lebih simpel
sisi pengirim
sisi penerima
sumber
Masukkan String ke Objek Intent
NextAcitvity dalam metode onCreate mendapatkan String
itu metode yang mudah dan pendek
sumber
Kirim
Dapatkan
sumber
menempatkan fungsi
sumber
Dorong Data
Kode di atas mungkin berada di dalam main
activity
. "MyActivity.class
" adalah yang kedua yangActivity
ingin kami luncurkan; itu harus secara eksplisit dimasukkan dalamAndroidManifest.xml
file Anda .Tarik Data
Dalam contoh ini, kode di atas akan berada di dalam Anda
MyActivity.java
file .Gotcha
Metode ini hanya bisa lewat
strings
. Jadi katakanlah Anda harus memberikan sebuahArrayList
kepada AndaListActivity
; solusi yang mungkin adalah untuk melewati string yang dipisahkan koma dan kemudian membaginya di sisi lain.Solusi Alternatif
Menggunakan
SharedPreferences
sumber
Sederhana, Kegiatan Pertama-
Dalam Aktivitas kedua-
sumber
Di FirstScreen.java
Di SecondScreen.java
sumber
letakkan string terlebih dahulu
ambil setelah itu
itu saja ;)
sumber
Anda bisa Cukup menggunakan variabel statis untuk menyimpan string edittext Anda dan kemudian gunakan variabel itu di kelas lain. Semoga ini akan menyelesaikan masalah Anda
sumber