Обновление ImageVIew в виджете Android - PullRequest
0 голосов
/ 29 марта 2012

Когда я хочу обновить свой ImegeView, я вижу «Проблема загрузки виджета»;

Мой main.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout  xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="280dp"
android:layout_height="120dp"
android:background="@drawable/widget_bg"
>
<ImageView
android:name="@+id/image_in_widget"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</AbsoluteLayout>

My Widget.java

package endoftheworld.wid;
//some imports

public class Widget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[]   appWidgetIds)
{
 RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.main); 
 Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.pulse);
 updateViews.setImageViewBitmap(R.id.image_in_widget,bitmap);
 appWidgetManager.updateAppWidget(appWidgetIds, updateViews);
 super.onUpdate(context, appWidgetManager, appWidgetIds); 
  }
}

В DDMS я вижу

AppWidgetHostView(128): android.widget.RemoteViews$ActionException: can't find view: 0x7f060000

Но у меня 0x7f060000 в R.java

 //....
public static final class id {
    public static final int image_in_widget=0x7f060000;
}
 //...

Я использую платформу Android 2.3.1 API Level 9 CPU / ABI ARM (armeabi).

Что за хитрость?

1 Ответ

0 голосов
/ 20 февраля 2013

Макет R.layout.main, который вы передаете RemoteViews, не имеет представления с идентификатором R.id.image_in_widget.Возможно, вы хотели передать другой макет, или, возможно, ImageView в этом макете имеет неправильный идентификатор.

...