【发布时间】:2015-10-06 08:29:23
【问题描述】:
我有一个Service,它每 5 分钟执行一次。它在执行时显示一个AlertDialog。我想在点击AlertDialog 按钮时启动一个Fragment。我试图启动Fragment喜欢
android.app.FragmentManager fm = ((Activity) getApplicationContext()).getFragmentManager();
但给出异常java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity。
这是我的AlertDialog 代码:
Handler mHandler = new Handler(getMainLooper());
mHandler.post(new Runnable() {
@Override
public void run() {
final AlertDialog alertDialog = new AlertDialog.Builder(getApplicationContext(),R.style.Theme_AppCompat_Light_Dialog_Alert)
.create();
// Setting Dialog Title
alertDialog.setTitle(eventNameEnglish);
// Setting Dialog Message
alertDialog.setMessage(eventAddressEnglish+"\n"+duration);
// Setting View Details Button
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE,"View Details", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
android.app.FragmentManager fm = ((Activity) getApplicationContext()).getFragmentManager();
dialog_fragment = new DetailFragment("Events",
eventNameEnglish, eventAddressEnglish,
eventContactNumberEnglish, eventEmailEnglish, eventFaxEnglish,
duration,eventOrganizerNameEnglish,
eventDescriptionEnglish,eventFullDescriptionEnglish,
eventLocationEnglish,eventImageEnglish,
eventWebsiteEnglish
);
dialog_fragment.show(fm, "detailScreen");
}
});
// Setting Cancel Button
alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE,"Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
// Showing Alert Message
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
}
});
如何做到这一点?请帮忙。
【问题讨论】:
-
投反对票前请说明原因
标签: java android android-fragments android-intentservice