Pertanyaan Mengakses instance dari aktivitas induk?


Misalkan saya memiliki kelas first.java (kelas aktivitas) dan saya memulai aktivitas lain di kelas ini (kelas kedua - kelas aktivitas). Bagaimana saya bisa mengakses instance first.java dari second.java? Bisakah seseorang memberi saya penjelasan yang bagus tentang ini .. Contoh akan sangat bagus ...


32
2018-02-09 12:10


asal


Jawaban:


Jika Anda membutuhkan aktivitas kedua untuk mengembalikan sebagian data ke aktivitas pertama Anda, saya sarankan Anda menggunakan startActivityForResult () untuk memulai aktivitas kedua Anda. Kemudian di onResult () dalam aktivitas pertama Anda, Anda dapat melakukan pekerjaan yang diperlukan.

Di First.java tempat Anda memulai Second.java:

Intent intent = new Intent(this, Second.class);
int requestCode = 1; // Or some number you choose
startActivityForResult(intent, requestCode);

Metode hasil:

protected void onActivityResult (int requestCode, int resultCode, Intent data) {
  // Collect data from the intent and use it
  String value = data.getString("someValue");
}

Di Second.java:

Intent intent = new Intent();
intent.putExtra("someValue", "data");
setResult(RESULT_OK, intent);
finish();

Jika Anda tidak ingin menunggu kegiatan Kedua berakhir sebelum Anda melakukan beberapa pekerjaan dalam kegiatan Pertama, Anda malah dapat mengirim siaran yang ditiru oleh kegiatan Pertama.


40
2018-02-09 12:42



Anda cukup menelepon getParent() dari aktivitas anak.

Saya tidak tahu mengapa jawaban lain begitu rumit.


7
2018-05-21 16:32



Hanya ini yang bisa berfungsi

class first
{
    public static first instance;
    oncreate()
    {
        instance = this;
    }
}

first.instance adalah hal yang dibutuhkan yang dapat diakses dari kelas kedua


2
2018-02-09 13:12



coba ini jika ini bekerja 4 u .........
sesuatu seperti ini.....

class first
{
public static first instance;
oncreate()
{
instance=this;
}

public static getInstance()
{
return instance;
}

}

sekarang dari panggilan kelas dua first.getInstance ();

Anda juga bisa langsung mengakses instance dengan cara statis seperti ini first.instance .......
Terima kasih...


-3
2018-02-09 12:24



Anda tidak dapat membuat aktivitas secara langsung.     Di aktivitas pertama, ambil variabel aktivitas statis seperti ini,

public static Activity activity;

Di onCreate lakukan ini.

activity = this;

Kemudian di aktivitas kedua lakukan ini,

Activity activity = (your activity name).activity;

Edit:  Untuk melewatkan data dari satu aktivitas ke aktivitas lain, ini bukan caranya. Jawaban di atas adalah untuk mendapatkan contoh aktivitas dari kegiatan lain yang awalnya diminta.

Untuk meneruskan data dari satu aktivitas ke aktivitas lain umumnya menggunakan bundel. Tetapi jika data bukan tipe data primitif, maka gunakan kelas objek yang harus mengimplementasikan antarmuka terpaket atau serializable. Kemudian melalui bundel hanya daftar objek yang dapat diarsipkan yang bisa kita lewati.


-3
2018-02-09 12:46