0
나는 내 레이아웃에 imageview가 있고, appwidgetprovider 활동으로 x 초마다 변경하고 싶습니다. 하지만 매번 findViewById를 사용하면 오류가 발생합니다. findViewById (int) 메서드는 위젯 형식에 대해 정의되지 않았습니다. 이 코드는 내 코드변경 imageview의 이미지
public class Widget extends AppWidgetProvider {
int []imageArray={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3};
private Handler mHandler = new Handler();
RemoteViews views;
AppWidgetManager appWidgetManager;
ComponentName currentWidget;
Context context;
TextView textview;
DateFormat format = new SimpleDateFormat("HH:mm");
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
this.context = context;
this.appWidgetManager = appWidgetManager;
views = new RemoteViews(context.getPackageName(), R.layout.widget);
currentWidget = new ComponentName(context, Widget.class);
mHandler.removeCallbacks(mUpdateTask);
mHandler.postDelayed(mUpdateTask, 100);
}
final Runnable mUpdateTask = new Runnable() {
public void run() {
Intent informationIntent = new Intent(context, MainActivity.class);
PendingIntent infoPendingIntent = PendingIntent.getActivity(
context, 0, informationIntent, 0);
views.setOnClickPendingIntent(R.id.Widget, infoPendingIntent);
views.setTextViewText(R.id.widget_textview,
"" + format.format(new Date()));
appWidgetManager.updateAppWidget(currentWidget, views);
mHandler.postDelayed(mUpdateTask, 1000);
}
};
@Override
public void onDisabled(Context context) {
super.onDisabled(context);
mHandler.removeCallbacks(mUpdateTask);
}
}
logcat을 게시하십시오. – GrIsHu
확인해보십시오. http://stackoverflow.com/questions/14597911/how-to-change-the-image-in-app-widget-programmatically-in-android/14598504#14598504 – Rahil2952