2013-08-28 3 views
0

인터넷에서 일부 텍스트를 다운로드하는 클래스를 만들었으므로 해당 텍스트를 가져 와서 내 위젯에서 TextView을 업데이트하고 싶습니다. 로깅 때문에 이벤트 (OnDownloadCompleteListener)가 트리거되는 것을 알고 있지만 해당 이벤트 내에서 TextView를 업데이트하는 방법을 알 수 없습니다. 나는 그것이 초보자 용 실수 인 것을 알고있다, 내가 무엇을 놓치고 있는지 명확히하지 않는다.이벤트 위젯의 텍스트 업데이트

public class Widget extends AppWidgetProvider{ 

     InternetText internettext; //Handles downloading the text from the internet 
     RemoteViews views; 

     public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
      final int N = appWidgetIds.length; 

      // Perform this loop procedure for each App Widget that belongs to this provider 
      for (int i=0; i<N; i++) { 
       int appWidgetId = appWidgetIds[i]; 

       // Create an Intent to launch ExampleActivity 
       Intent intent = new Intent(context, MainActivity.class); 
       PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

       // Get the layout for the App Widget and attach an on-click listener 
       // to the button 
       views = new RemoteViews(context.getPackageName(), R.layout.widget); 
       views.setOnClickPendingIntent(R.id.tvWidgetVerse, pendingIntent); 

       internettext = new InternetText(context); 
       internettext.setOnDownloadCompleteListener(new OnDownloadCompleteListener() { 

        @Override 
        public void onEvent() { 
         TheText thetext = internettext.downloadedText(); //The text object 
         Log.i("", "Widget Text Downloaded " + thetext.getText()); //This fires so I know we've downloaded the text 
         TextStyling textStyle = new TextStyling(); 



//*****THIS IS WHERE I'M HAVING THE PROBLEM******** 
         views.setTextViewText(R.id.tvWidgetText, Html.fromHtml(textStyle.boldWords(thetext.getText()))); //this never updates 
        } 
       }); 


       internettext.getText(); 

       // Tell the AppWidgetManager to perform an update on the current app widget 
       appWidgetManager.updateAppWidget(appWidgetId, views); 
      } 
     } 

    } 
+0

합니까 thetext.getText을해야 의미

appWidgetManager.updateAppWidget(appWidgetId, views); 

앱? – TheHamstring

+0

예. textview에 텍스트를 설정하는 것 외에는 모든 것이 제대로 작동합니다. 오류도 발생하지 않습니다. – bwoogie

답변

0

좋아, 알아 냈어. 이벤트 내에서 appWidgetManager.updateAppWidget()으로 전화해야합니다. 나는 그것을 알고 있었다 생각할 필요 없습니다 ... 또한 내가 실행할 때 로그에 결과를 반환) (appWidgetManager 및 appWidgetId final

public void onUpdate(Context context, final AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
... 
} 
관련 문제