Menyegarkan aktivitas dari aktivitas lain Android

Saya perlu memuat ulang aktivitas dari aktivitas lain di aplikasi Android. Aktivitas ke-2 itu adalah jendela dialog, dan berdasarkan aktivitas dasar jendela dialog, konten harus disegarkan. (Dengan mengklik tombol aktivitas dialog)


person kAsdh    schedule 03.05.2017    source sumber
comment
Apakah Anda menggunakan startActivityForResult di Aktivitas pertama?   -  person OneCricketeer    schedule 03.05.2017
comment
ya. Saya menggunakan startActivityForResult untuk menginisialisasi aktivitas kedua   -  person kAsdh    schedule 03.05.2017
comment
Oke, selanjutnya Anda hanya perlu mengimplementasikan onActivityResult untuk melakukan penyegaran   -  person OneCricketeer    schedule 03.05.2017
comment
Silakan posting kode Anda di sini   -  person Bhavnik    schedule 03.05.2017


Jawaban (3)


Muat ulang aktivitas Anda.

context.startActivity(context.getIntent());
context.finish();
person DroidNinja    schedule 04.05.2017

Anggaplah A adalah aktivitas yang ingin Anda muat ulang dan B adalah aktivitas lainnya.

Dalam hal ini, panggil saja finish() saat Anda berpindah dari A ke B. Saat Anda memanggil A dari B, aktivitas A akan dimuat lagi.

person Plochie    schedule 03.05.2017

Jendela Dialog dan aktivitas adalah hal yang sepenuhnya berbeda.

Dimungkinkan untuk menyegarkan Aktivitas Pertama dari dialognya. Anda dapat melakukannya menggunakan antarmuka.

Inilah solusi sederhana. Dalam Aktivitas Pertama Anda, terapkan nama Antarmuka IRefreshInteface. Definisinya seperti di bawah ini:

public interface IRefreshInteface(){
  public void doRefreshValue(String commandValue);
}

Sekarang jika Anda menerapkan IRefreshInteface dalam aktivitas Anda, Anda akan mendapatkan metode doRefreshValue(String commandValue) dan menulis kode penyegaran di sini.

@Override
void doRefreshValue(String commandValue){
// Write refresh code here
}

Sekarang dalam dialog Anda, Anda memiliki Konteks Aktivitas Anda. Dengan menggunakan objek konteks tersebut Anda dapat memanggil metode doRefreshValue(String commandValue) ini dengan mudah. Berikut ini contoh kodenya:

public AlertDialog displayMessage(Context context, String title, String message){
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle(title);
        builder.setMessage(message);
        LayoutInflater inflater = LayoutInflater.from(context);
        final View v = inflater.inflate(R.layout.custom_view, null);
        builder.setView(v);
        shipText = (EditText)v.findViewById(R.id.shipNameEditText);
        scientistNameText = (EditText)v.findViewById(R.id.scientistEditText);
        scientistEmailText = (EditText)v.findViewById(R.id.emailEditText);
        volumeText = (EditText)v.findViewById(R.id.volumeEditText);
        colourText  = (EditText)v.findViewById(R.id.colourEditText);
        builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                ((IRefreshInteface) context).doRefreshValue("YOUR_COMMAND");


            }
        });
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        AlertDialog dialog= builder.create();
        dialog.show();
        Button tb = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
        tb.setOnClickListener(new CustomListener(dialog));

        return dialog;
    }

di sini, teruskan metode Konteks Aktivitas kedisplayMessage() dan panggil metode aktivitas doRefreshValue menggunakan cara ini:

((IRefreshInteface) context).doRefreshValue("YOUR_COMMAND");

Untuk info lebih lanjut kunjungi di sini dan di sini

Semoga ini bisa menyelesaikan masalah Anda. Maaf untuk bahasa Inggris yang buruk :)

person Md. Sajedul Karim    schedule 03.05.2017