Странное поведение при нажатии на изображения на виджете главного экрана - PullRequest
2 голосов
/ 08 апреля 2010

Я написал виджет домашнего экрана с одним изображением на нем. При нажатии на изображение открывается браузер для ссылки URL. Как правило, это работает. Но странная вещь в том, что, когда я нажимаю фон, а затем нажимаю на картинку, браузер не будет открыт. Пока я не нажму второй раз на картинке, браузер открывается. Шаги для воспроизведения ниже:

  1. Нажмите на фон виджета на главном экране.
  2. Нажмите на изображение на главном экране. Браузер не открывается.
  3. Нажмите на изображение еще раз. Браузер открыт.

Если я не нажал на фон, изображение будет реагировать на щелчок очень хорошо, то есть браузер будет открыт при первом нажатии на изображение.

XML-файл виджета выглядит следующим образом:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget"
android:layout_width="320dip" android:layout_height="200dip"
    android:background="@drawable/prt_base"
>
    <ImageView android:id="@+id/picture1"
        android:layout_width="134dip"
        android:layout_height="102dip"
        android:layout_marginLeft="62dip"
        android:layout_marginTop="6dip"
        android:scaleType="center"
                android:src="@drawable/picture1"
    />
</RelativeLayout>

Код для установки OnClick на картинке1 ImageView выглядит следующим образом:

                        defineIntent = new Intent(Intent.ACTION_VIEW, Uri
                                .parse("http://www.google.com"));
                        pendingIntent = PendingIntent
                                .getActivity(context,
                                        0 /* no requestCode */,
                                        defineIntent, 0 /* no flags */);
                        updateViews.setOnClickPendingIntent(
                                picId, pendingIntent);

Кто-нибудь знает, что не так?

Спасибо.

1 Ответ

1 голос
/ 08 апреля 2010
  RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.mywidget);

    Intent defineIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
        PendingIntent pendingIntent = PendingIntent.getActivity(context,
                0 , defineIntent, 0 );
   updateViews.setOnClickPendingIntent(picId, pendingIntent);

   appWidgetManager.updateAppWidget(appWidgetId, updateViews );

это будет работать!

не могли бы вы опубликовать свой appwidget-провайдера ???

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...