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)
Menyegarkan aktivitas dari aktivitas lain Android
Jawaban (3)
Muat ulang aktivitas Anda.
context.startActivity(context.getIntent());
context.finish();
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.
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 :)
startActivityForResult
di Aktivitas pertama? - person OneCricketeer   schedule 03.05.2017onActivityResult
untuk melakukan penyegaran - person OneCricketeer   schedule 03.05.2017