由网友(-わ↗潮流。麒尐)分享简介:prefs.java prefs.javaIntent resultValue = new Intent();resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);setResult(RESULT_OK, resultValue...
prefs.java
prefs.java
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_OK, resultValue);
Context context = getApplicationContext();
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
Intent configIntent = new Intent(context, Prefs.class);
configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, configIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.callbackwidget, pendingIntent);
AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, views);
widget.xml
widget.xml
问题是,当我添加小部件IT无法点击。重启手机后,它工作确定。同时部署新的Build版本后,小部件是可以点击
Problem is when i add widget IT IS NOT CLICKABLE. after rebooting phone it is working ok. also after deploying new build version, widget IS CLICKABLE
什么想法?
推荐答案
大。问题是在不发送 ACTION_APPWIDGET_UPDATE。所以收preferences之前我发送广播消息:
great. problem was on NOT SENDING ACTION_APPWIDGET_UPDATE. so before closing preferences i send broadcast:
Intent updateIntent = new Intent(this, CallBackWidget.class);
updateIntent.setAction("PreferencesUpdated");
updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
sendBroadcast(updateIntent);
和在小部件的onReceive方法我检查广播
and in onreceive method of widget i check for broadcast
if ("PreferencesUpdated".equals(action)) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
int appWidgetId = intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
appWidgetManager.updateAppWidget(appWidgetId, views);
int[] appWidgetIds = new int[] {appWidgetId};
onUpdate(context, appWidgetManager, appWidgetIds);
}
现在它就像一个魅力;)
now it works like a charm ;)
相关推荐
最新文章