gpt4 book ai didi

android - 如何以编程方式禁用 Android AppWidget 按钮上的 onClick 处理程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:10:47 25 4
gpt4 key购买 nike

我在 appwidget 上有一个按钮,我需要通过服务以编程方式“启用”/“禁用”。

第一个想法是调用 setBoolean(R.id.buttonid, "setClickable", false) 来禁用它,但显然您不能远程调用 setClickable

另一个想法是使用 rv.setTextViewText(R.id.buttonid, "") 从中删除文本标签,然后通过 rv.setOnClickPendingIntent(R. id.buttonid, null).不幸的是,将 null 传递给它会导致 android.app.ActivityThread.handleServiceArgs

中的 NullPointerException

是否有其他方法以编程方式禁用/启用 appwidget 按钮?我可以调用 rv.setViewVisibility(R.id.buttonid, View.GONE) 来完全隐藏按钮而不是禁用它。然而,这会完全破坏整个小部件布局,我想避免它。

我现在使用的解决方案是使用 setViewVisibility 隐藏按钮并显示其他空白按钮,而不是像以前一样保持 appwidget 布局。

最佳答案

基本上我遇到了同样的问题,但想完全以编程方式完成,所以我们只需将 bool 值传递给 setBoolean() 函数:

remoteViews.setBoolean(R.id.imageButton1, "setEnabled", false);

不要忘记告诉 Android 更新主屏幕:

    RemoteViews remoteViews = new RemoteViews(context.getResources().getText(R.string.package_name).toString(), R.layout.your_layout);
ComponentName thisWidget = new ComponentName(context, Widget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, remoteViews);

关于android - 如何以编程方式禁用 Android AppWidget 按钮上的 onClick 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com