我正在开发Android小部件,并从Web服务中显示一些数据在该小部件上,它运行正常。以下是代码:
我有一个小部件上的按钮,现在我想在用户单击按钮时使用不同的值更新小部件视图。我知道我必须使用pendingIntent来完成,如下所示。
但它会启动另一个活动,我不想去另一个活动。我只需要在按钮点击后使用新值更新相同的小部件视图。有什么想法吗?
代码
public class WatchWidget extends AppWidgetProvider{
private static final String TAG = "WatchWidget";
@Override
public void onUpdate( Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds ){
Log.i(TAG, "* onUpdate");
EBWeaterData ebwd=new EBWeaterData();
EBWeatreUtils.getWeatherFeeds(context, ebwd, "my url to get data");
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.main);
RemoteViews newView = new RemoteViews(context.getPackageName(), R.layout.test);
//get data
String day=ebwd.getDay_1()+ebwd.getDay_suffix_1()+" "+ebwd.getDay_name_1();
String minmaxtemp="Max Temp "+ebwd.getDay_max_temp_1()+"°C "+"Min Temp "+ebwd.getDay_min_temp_1()+"°C";
//set dat to views
newView.setTextViewText(R.id.textView_day_name, day);
newView.setTextViewText(R.id.textView_minmaxtemp, minmaxtemp);
newView.setImageViewResource(R.id.ImageView_icon, R.drawable.sunny);
views.addView(R.id.view_container, newView);
ComponentName thisWidget = new ComponentName(context,WatchWidget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, views);
}
}
我有一个小部件上的按钮,现在我想在用户单击按钮时使用不同的值更新小部件视图。我知道我必须使用pendingIntent来完成,如下所示。
Intent intent = new Intent(context, activitytogetNewdata.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.imageView1, pendingIntent);
但它会启动另一个活动,我不想去另一个活动。我只需要在按钮点击后使用新值更新相同的小部件视图。有什么想法吗?