Ich erstelle ein Popup-Fenster in AsyncTask in onPostExecute(). Es zeigt perfekt, wenn ich auf der gleichen Aktivität bin, aber wenn ich auf der anderen Aktivität bin, tut es nicht t Show und die App stürzt ab. Ich möchte, dass das Popup-Fenster auf der aktuellen Aktivität des Benutzers erscheint.Popup-Fenster erscheint in allen Aktivitäten der Anwendung
Da der Layoutinflator den Basiskontext nur einer Aktivität hat, wird er deshalb nicht in anderen Aktivitäten angezeigt. Wie kann ich es auch auf anderen Aktivitäten zeigen?
Hier ist mein Popup-Fenster Code:
protected void onPostExecute(Integer progress) {
View popupView = layoutinflater.inflate(R.layout.popup_window, null);
final PopupWindow popupWindow = new PopupWindow(
popupView,
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
ImageView btnDismiss = (ImageView) popupView.findViewById(R.id.imageView3);
ImageView btnDismiss2 = (ImageView) popupView.findViewById(R.id.imageView4);
ImageView btnDismiss3 = (ImageView) popupView.findViewById(R.id.imageView5);
btnDismiss.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
popupWindow.dismiss();
}
});
btnDismiss2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
popupWindow.dismiss();
}
});
btnDismiss3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// File downloaddirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES), "Youtube Videos");
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
Uri uri = Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getPath()
+ "/XYZ/");
intent.setData(uri);
GlobalDownload.context.startActivity(Intent.createChooser(DownloadScreen.intent, "Open folder"));
}
});
popupWindow.showAtLocation(popupView, Gravity.CENTER, 0, 0);
}
Popup-Fenster sind Teil der Benutzeroberfläche für die Aktivität, die sie zeigt. Wenn die Aktivität unsichtbar wird, wird das Popup damit unsichtbar. Sie müssen für jede Aktivität ein neues Popup erstellen, wenn Sie möchten, dass es fortbesteht. –
@DougStevenson: Es wird immer noch flackern, da jedes Mal nach dem Schließen ein neues Popup erstellt wird. Würde ** sehr ** erschütternd erscheinen. – Swayam
Richtig, also vielleicht eine Option betrachten, die nicht mehrere Aktivitäten beinhaltet? Wie mehrere Fragmente? Oder einfach zwischen den Ansichten wechseln? –