2013-06-07 3 views
1

그래, 안드로이드 위젯이 있고 안드로이드 위젯 업데이트에 문제가 있습니다. 같은 알람으로,안드로이드 setTextViewText가 작동하지 않습니다.

public class Widget extends AppWidgetProvider { 

RemoteViews views; 

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
    int N = appWidgetIds.length; 
    views = new RemoteViews(context.getPackageName(), R.layout.widget); 
    for (int i = 0; i < N; i++) { 
     int appWidgetId = appWidgetIds[i]; 
     String alarm = Settings.System.getString(context.getContentResolver(), 
      Settings.System.NEXT_ALARM_FORMATTED); 
     views.setTextViewText(R.id.tvAlarm, alarm); 

     views.setTextViewText(R.id.tvNextAlarm, "qwertyuiop"); 

     appWidgetManager.updateAppWidget(appWidgetId, views); 
    } 
} 

내가 코드의 일부가 잘못 알고 난 노력하고 있어요 : 나는

내 코드는 ... 몇 가지 간단한 하드 setTextViewText 코딩하지만 응용 프로그램을 디버깅 할 때 아무것도 일어나지 사용했습니다 어떻게 든 배터리 상태를 통합하는 것입니다. 그러나 나는 BroadcastReceiver이 앞으로 나아갈 길이가 아니라는 말을 들었습니다. 그래서 나는 그것을 주석 처리했습니다.

그러나 가장 큰 문제는이 작동하지 않는 TextView을 변경하는 위젯을 업데이트입니다 ...

답변

2

난 그냥 내 위젯 중 하나에이 코드를 시도하고 그것을 잘 작동합니다 :

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 

    // Get ids of all the instances of the widget 
    ComponentName widget = new ComponentName(context, MediaWidgerProvider.class); 
    int[] widgetIds = appWidgetManager.getAppWidgetIds(widget); 

    for (int widgetId : widgetIds) { 

     RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.my_widget); 

     remoteViews.setTextViewText(R.id.widget_text, "Hello"); 

     appWidgetManager.updateAppWidget(widgetId, remoteViews); 
    } 
} 
관련 문제