我是android开发的初学者。目前,我正在创建一个小的主屏幕小部件,它可以在单击按钮时更改手机的壁纸。设置墙纸工作正常,但我想制作一个可点击的小图片(ImageView)以允许用户显示和隐藏此设置按钮。
我在服务上设置它并使用 PendingIntent 以便将我的 onClick 事件附加到同一服务,但我无法检测按钮的属性是显示还是隐藏。
因此,是否有任何建议和解决方案可以让我的 ImageView 显示或隐藏主屏幕小部件中的按钮?
提前致谢..
最佳答案
您可以使用 mButton.setVisibility(View.GONE) 来隐藏按钮。
您还可以使用 mButton.isShown() 在 bool 变量中检查按钮的可见性状态。
编辑:
例如
在AppWidgetProvider
的onReceive()
中,
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/