无法在 RemoteView Android 上更改 ImageView 资源
Posted
技术标签:
【中文标题】无法在 RemoteView Android 上更改 ImageView 资源【英文标题】:Cant change ImageView resource on RemoteView Android 【发布时间】:2012-06-21 11:21:17 【问题描述】:我正在尝试制作一个带有可点击图像的简单小部件,当点击它时它会发生变化。 我不明白为什么它不起作用
public class AppWidget extends AppWidgetProvider
@Override
public void onReceive(Context context, Intent intent)
if (intent.getAction()==null)
context.startService(new Intent(context,
ToggleService.class));
else
super.onReceive(context, intent);
@Override
public void onUpdate(Context context, AppWidgetManager
appWidgetManager, int[] appWidgetIds)
context.startService(new Intent(context,
ToggleService.class));
public static class ToggleService extends IntentService
public ToggleService()
super("AppWidget$ToggleService");
@Override
protected void onHandleIntent(Intent intent)
ComponentName me=new ComponentName(this, AppWidget.class);
AppWidgetManager mgr=AppWidgetManager.getInstance(this);
mgr.updateAppWidget(me, buildUpdate(this));
private RemoteViews buildUpdate(Context context)
RemoteViews updateViews=new
RemoteViews(context.getPackageName(),R.layout.widget);
int a = 1;
if(a ==
1)
updateViews.setImageViewResource(R.id.phoneState,
R.drawable.dual_off);
else
updateViews.setImageViewResource(R.id.phoneState,
R.drawable.dual_on);
Intent i=new Intent(this, AppWidget.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i,0);
updateViews.setOnClickPendingIntent(R.id.phoneState,pi);
return updateViews;
我在 for 循环中尝试了各种方法,但它不会改变图像。 我是从一本关于 android 开发的书中完成的,对 java 和 android 很陌生。
【问题讨论】:
【参考方案1】:您将通过 AppWidgetManager、after
更改 remoteview 的源来更新您的小部件。在这个 sn-p 代码中,我尝试更改小部件的布局,它的 AppWidgetProvider 名称是 DictionWidgetProvider强>:
private void hideWidgetInstances()
hideViews = new RemoteViews(App.getContext().getPackageName(),
R.layout.hide);
AppWidgetManager mManager = AppWidgetManager.getInstance(App
.getContext());
ComponentName cn = new ComponentName(App.getContext(),
DictionWidgetProvider.class);
mManager.updateAppWidget(cn, hideViews);
这里的App是一个扩展Application的类。你可以使用Application Context来访问ComponentName。
【讨论】:
以上是关于无法在 RemoteView Android 上更改 ImageView 资源的主要内容,如果未能解决你的问题,请参考以下文章
Android-Widget:使用 RemoteView 更改 ListView 选择器颜色