私はonPostExecute()のAsyncTaskでポップアップウィンドウを作成していますが、これは同じアクティビティでも完全に表示されていますが、ショーとアプリがクラッシュします。ユーザーが現在行っているアクティビティにポップアップウィンドウを表示させたい。アプリケーションのすべてのアクティビティに表示されるポップアップウィンドウ
layoutinflaterは1つのアクティビティのみのベースコンテキストを持っているため、他のアクティビティには表示されません。それを他の活動にもどのように表示できますか?それはそれを示したのアクティビティのコンテキストに装着されているとして、あなたのアプリケーション内のすべての活動全体でポップアップを共有することはできません、
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);
}
ポップアップウィンドウは、それを示すアクティビティのUIの一部です。アクティビティが見えなくなると、ポップアップが表示されなくなります。永続化したい場合は、各アクティビティーの新しいポップアップを再作成する必要があります。 –
@DougStevenson:解消後に毎回新しいポップアップが作成されるため、ちらつきが残っています。 **非常に**びっくりするように見えるでしょう。 – Swayam
そうですね、複数の活動を伴わないオプションを考えてみてください。複数の断片のように?または、ビューを切り替えるだけですか? –