android - 如何在 Android 主屏幕小部件中隐藏/显示按钮

标签 android user-interface widget onclick

我是android开发的初学者。目前,我正在创建一个小的主屏幕小部件,它可以在单击按钮时更改手机的壁纸。设置墙纸工作正常,但我想制作一个可点击的小图片(ImageView)以允许用户显示和隐藏此设置按钮。

我在服务上设置它并使用 PendingIntent 以便将我的 onClick 事件附加到同一服务,但我无法检测按钮的属性是显示还是隐藏。

因此,是否有任何建议和解决方案可以让我的 ImageView 显示或隐藏主屏幕小部件中的按钮?

提前致谢..

最佳答案

您可以使用 mButton.setVisibility(View.GONE) 来隐藏按钮。

您还可以使用 mButton.isShown() 在 bool 变量中检查按钮的可见性状态。

编辑:

例如

AppWidgetProvideronReceive()中,

     remoteViews = new RemoteViews( context.getPackageName(), R.layout.yourwidgetlayout );

     remoteViews.setViewVisibility(viewId, visibility);

所以为了隐藏你的 Button

     remoteViews.setViewVisibility(R.id.buttonId,View.INVISIBLE);

编辑 - 2:根据 Kartik 的评论,

示例代码:

    public class ButtonHideShowWidget extends AppWidgetProvider {

     private static boolean status = false;

     @Override
     public void onReceive(Context context, Intent intent) {
      super.onReceive(context, intent);
      if (intent.getAction()==null) {

             Bundle extras = intent.getExtras();
             if(extras!=null) {

                 remoteViews = new RemoteViews( context.getPackageName(), R.layout.your_widget_layout );
                 if(status){
                   remoteViews.setViewVisibility(R.id.buttonId,View.INVISIBLE);
                  status = false;
                 }else{
                   remoteViews.setViewVisibility(R.id.buttonId,View.VISIBLE);
                  status = true;
              }

                 watchWidget = new ComponentName( context, ButtonHideShowWidget.class );

                 (AppWidgetManager.getInstance(context)).updateAppWidget( watchWidget, remoteViews );
                 //Toast.makeText(context, "Clicked "+status, 2000).show();
             }
         }
    }
}

关于android - 如何在 Android 主屏幕小部件中隐藏/显示按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7509830/

相关文章:

android - 尝试实现 WebviewClient 但失败

c++ - GUI 中的内存管理

.net - 需要更换第 3 方 WinForm 控件,壁橱 WPF 等效项是什么?

dart - setState() 如何重建子部件?

屏幕外的 Android Animate View 无法正常工作

java - 当我从列表中选择一个项目时,如何打开带有按钮的弹出窗口?-在 Android 应用程序中

java - 如何在多个 Activity 中使用 ViewModel 和 LiveData 观察者?

java - 在 GUI 中使用预定义的字符串

java - Sonarqube 从小部件加载设置

javascript - LinkedIn 如何知道或跟踪我嵌入其小部件的位置?