Android 更新事件小部件中的文本
我创建了一个从internet下载一些文本的类,我想获取这些文本并更新我的小部件中的Android 更新事件小部件中的文本,android,android-widget,textview,Android,Android Widget,Textview,我创建了一个从internet下载一些文本的类,我想获取这些文本并更新我的小部件中的TextView。我知道事件(OnDownloadCompleteListener)被触发,因为我正在记录它,但我不知道如何从该事件中更新TextView。我知道这是一个新手的错误,只是不知道我错过了什么 public class Widget extends AppWidgetProvider{ InternetText internettext; //Handles download
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);
}
}
}
公共类小部件扩展了AppWidgetProvider{
InternetText;//处理从internet下载文本
远程视图;
公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId){
final int N=appWidgetIds.length;
//对属于此提供商的每个应用程序小部件执行此循环过程
对于(int i=0;i好的,我找到了答案。我必须在事件中调用appWidgetManager.updateAppWidget()
。我知道这是一个很简单的问题
appWidgetManager.updateAppWidget(appWidgetId, views);
这也意味着我必须使appWidgetManager和appWidgetIdfinal
public void onUpdate(Context context, final AppWidgetManager appWidgetManager, int[] appWidgetIds) {
...
}
运行应用程序时,text.getText()是否会在日志中返回结果?是的。除将文本设置为textview外,所有操作都正常工作。也不会引发任何错误。