簡體   English   中英

無法在RemoteView Android上更改ImageView資源

[英]Cant change ImageView resource on RemoteView Android

我正在嘗試使用可點擊的圖片制作一個簡單的小部件,該圖片在點擊時會發生變化。 我不明白為什么它不起作用

   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的新手。

更改remoteview的源代碼after ,您將通過AppWidgetManager更新小部件。 after此代碼段中,我嘗試更改其小部件的布局,其名稱為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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM