2013-02-02 3 views
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); 
    } 
} 
+0

logcat을 게시하십시오. – GrIsHu

+0

확인해보십시오. http://stackoverflow.com/questions/14597911/how-to-change-the-image-in-app-widget-programmatically-in-android/14598504#14598504 – Rahil2952

답변

0

Activity에만 사용할 수 있습니다. ActivityImageView 인스턴스가 있고 Widget에 대한 매개 변수로 전달할 수 있습니다.