类似的控制WiFi、蓝牙、振动模式等设置的Widget有很多,基本上也都是用ToggleButton实现的(至少看起来是ToggleButton),但是因为RemoteView并不包括ToggleButton,所以自己尝试实现起来发现很困难。
要怎么做才能使AppWidget支持ToggleButton呢?
如果实在做不到,有什么办法可以让ImageButton实现类似于ToggleButton的效果吗?

解决方案 »

  1.   

    写的类继承AppWidgetProvider不是有个onreceive方法么@Override
    public void onReceive(Context context, Intent intent) {
    // 只能通过远程对象来设置appwidget中的控件状态
    rv = new RemoteViews(context.getPackageName(), R.layout.widget);
    AppWidgetManager appWidgetManager = AppWidgetManager
    .getInstance(context);
    boolean isPlaying = intent.getBooleanExtra(MediaService.STATE, false);
    String title = intent.getStringExtra("title");
    if (isPlaying) {
    rv.setImageViewResource(R.id.app_playBtn, R.drawable.pause);
    } else {
    rv.setImageViewResource(R.id.app_playBtn, R.drawable.play);
    }
    rv.setTextViewText(R.id.app_title, title);
    updateAppWidget(context, appWidgetManager);
    ComponentName componentName = new ComponentName(context,
    AppWidget.class);
    // 更新appwidget
    appWidgetManager.updateAppWidget(componentName, rv);
    super.onReceive(context, intent);
    }
      

  2.   

    给它的Intent-filter设置个action,然后代码里面蓝牙打开或关闭就发送广播,让图片换掉
      

  3.   

    楼主是否有在源码基础上修改音乐播放器的appwidget,添加重复播放,随机播放,进度条。原始是不带这些功能。