码
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,intent,0); vIEws.setonClickPendingIntent(R.ID.imageVIEw1,pendingIntent);
但它会启动另一个我不想去anther活动的活动.我只需要按下按钮后用新值更新相同的小部件视图.任何想法?
解决方法 我发现了我的代码问题.当我要使用pendingintent更新我的视图时,它将动态添加每个按钮点击的视图,因为我使用了2个布局听到所以我解决了问题如下.(我使用一个布局代替使用两个)码
public class WatchWidget extends appwidgetprovider{ private static final String TAG = "WatchWidget"; @OverrIDe public voID onUpdate( Context context,"my url to get data"); RemoteVIEws newVIEw = new RemoteVIEws(context.getPackagename(),R.drawable.sunny); Componentname thisWidget = new Componentname(context,newVIEw); }总结
以上是内存溢出为你收集整理的如何在Android中按钮点击更新小部件的视图?全部内容,希望文章能够帮你解决如何在Android中按钮点击更新小部件的视图?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)