Можно ли открыть пользовательский диалог с помощью кнопки виджета?Я создал виджет с кнопкой.С этим учебным пособием, если я нажму ButtonP1, появится сообщение с тостом.Но я хочу, чтобы появился пользовательский диалог.В уроке также есть пример намерения для кнопки, но для моего настраиваемого диалогового окна она не работает, однако, если я хочу открыть действие, с которым она работает нормально.Я хочу, чтобы пользовательское диалоговое окно отображалось, когда пользователь нажимает кнопку на виджете.
Вот этот код, в котором Main.class является действием:
public class HelloWidget extends AppWidgetProvider {
public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
context.startService(new Intent(context, UpdateService.class));
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widgetmain);
Intent configIntent = new Intent(context, Main.class);
configIntent.setAction(ACTION_WIDGET_CONFIGURE);
PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
remoteViews.setOnClickPendingIntent(R.id.ButtonP1, configPendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
}
Когда я изменяю Main.classдля CustomizeDialog.class ничего не происходит.
Файл CustomizeDialog.java выглядит следующим образом:
public class CustomizeDialog extends Dialog implements OnClickListener {
Activity mActivity;
public CustomizeDialog(Activity activity) {
super(activity);
mActivity = activity;
...
}
@Override
public void onClick(View v) {
if (v == okButton)
{
dismiss();
}
if (v == cancelButton)
{
dismiss();
}
}
}
Изменить 06.21.2011
Спасибо вам, ребята, я смог назвать мероприятие с framelayout, что почти то, что я хотел.Однако я хочу сделать это с помощью customdialog, но с кодом, который я использую, он не появляется, когда я нажимаю на кнопку виджета:
Intent configIntent = new Intent(context, CustomizeDialog.class);
configIntent.setAction(ACTION_WIDGET_CONFIGURE);
PendingIntent configPendingIntent = PendingIntent.getActivity(context, REQUEST_CODE_THREE, configIntent, 0);
remoteViews.setOnClickPendingIntent(R.id.ButtonP3, configPendingIntent);
Если я изменяю CustomizeDialog.class на Main.class, который является действием, он работает нормально.
Пожалуйста, найдите структуру CustomDialog.class выше.