Android App Widget - 更改 TextView 内容的按钮

2023-12-07

我对 Android 应用程序小部件有点困惑。我知道我可以创建一个按钮来启动活动,但我不知道如何创建一个按钮来编辑小部件内 TextView 的文本。 有人可以告诉我我错过了什么吗?

预先非常感谢。

编辑: 我的意思并不是让用户输入新文本,而是让应用程序自动更改文本,无需任何 UI(即对话框或活动)。


编辑: 好的,所以你设置了一个获取广播按钮上的 PendingIntent设置OnClickPendingIntent并使用来自接收器的新文本执行更新(或调用更新方法)。你的应用程序窗口小部件提供者类可以是你的接收者(你可以在接收时),否则您将创建一个扩展的新类广播接收器.

编辑2(示例代码):

我没有运行/编译这段代码,所以希望它不会有错误。 这是一个简单的帮助器方法,用于通过自定义操作获取基本的更新挂起意图:

public PendingIntent getRefreshPendingIntent(Context context, int appWidgetId){
    Intent intent = new Intent("my.package.ACTION_UPDATE_WIDGET");
    intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
    return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}

在重写的 AppWidgetProvider 类中捕获 onReceive 中的自定义操作

@Override
public void onReceive(Context context, Intent intent) {
    final String action = intent.getAction();

    //handle other appwidget actions    

    if (intent.getAction().equals("my.package.ACTION_UPDATE_WIDGET")) {
        //some code here that will update your widget
    }

    //handle other appwidget actions
}

您还需要将自定义操作的 IntentFilter 添加到 appwidget 接收器声明中的清单中

<receiver
    android:name="my.package.MyWidgetProviderClass"
    android:label="MyWidget">
    <intent-filter>     
        <action android:name="my.package.ACTION_UPDATE_WIDGET"/>
        <!-- other intent filters -->
    </intent-filter>
    <!-- meta data pointing to widget xml file -->
</receiver>

最后,您将挂起的意图应用到您正在构建的 RemoteViews 上,这样当单击按钮时,它将发送 my.package.ACTION_UPDATE_WIDGET 操作,该操作将被您的 AppWidgetProvider 捕获,您可以在其中(或调用一个方法)执行您的 AppWidget 更新

myRemoteViews.setOnClickPendingIntent(R.id.id_of_update_button, getRefreshPendingIntent(context, appWidgetId);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android App Widget - 更改 TextView 内容的按钮 的相关文章

随机推荐

  • scala 中的循环类型参数定义

    我试图定义一个通用容器 其元素可以返回封闭容器 就像是 abstract class Container E lt Element compile error def contains e E Boolean def addNewEleme
  • 如何在 spring data-jpa + mysql 8 中插入地理点列?

    我的环境 mysql 8 0 25 休眠核心 5 4 32 休眠空间 5 4 32 spring boot2 5 4 java 8 我做了什么 应用程序 yml spring datasource driver class name com
  • 错误 1 ​​错误 LNK1104:无法打开文件“winmm.lib”

    好的 我正在运行 Visual Basic 2010 Express 并尝试在 Direct X SDK 中运行教程 2 但是 由于某种原因 该程序无法编译 尽管在我现在正在阅读的教程中 它说我只需要 Direct X SDK 和 Visu
  • Node.js 中 http.client 的摘要身份验证问题

    我尝试在使用时实现摘要请求http get并得到 摘要式身份验证失败 每次都发消息 var hashlib require hashlib http require http url require url qs require query
  • 为什么 UserControl 中的 Visible 属性未正确更新?

    有时我的 UserControl 的 Visible 属性无法正确更新 它发生在我的应用程序启动时 在 OnFontChanged 中 从 InitializeComponent 内部触发 可能是因为尚未设置其他一些内容 我就是不知道是什么
  • AngularJS - 按条件更改控制器?

    我有一个简单的表格 其中包含总结按下的项目的数据 通过添加 JSBIN 700 300 400 该表格的边界为ng controller OrderFormController 哪个又有这个方法 scope total function v
  • 在尝试实现方法时如何修复“错误数量的类型参数”?

    我正在尝试实现一个方法 struct Point
  • qt:pyqt:QTreeView内部拖放几乎可以工作...拖动的项目消失

    I almost在 QTreeView 中具有完全有效的拖放重新排序功能 一切似乎都很好 除了掉落的物体永远不会出现 尽管我可以通过多种不同的方式引用它 向我证明它确实存在于它应该在的地方 如果有人有时间可以运行以下代码并让我知道我做错了什
  • Kotlin 类型擦除 - 为什么仅泛型类型不同的函数可编译,而仅返回类型不同的函数则不可编译?

    在致力于answer of Kotlin 中的擦除是如何工作的 我发现了一些我还不明白的事情 也没有找到任何来源为什么会这样 为什么以下内容无法编译 fun bar foo List lt gt fun bar foo List lt gt
  • 单击单选按钮填充文本框

    我有 3 个单选按钮 当选择其中之一时 我想自动将文本放入文本框中 例如 如果用户选择 是 单选按钮 我希望将文本 是 放入文本框中 如果他们选择另一个单选按钮 我希望将其清除 谁能帮我 你想要这个吗 http jsfiddle net v
  • 如何从类库 NuGet 包中排除包?

    我有一个 NET Standard将构建到 NuGet 包中的类库项目 我已经安装了docfx console包 以便我每次构建时都可以生成一个文档网站 现在 当另一个项目安装我的库的 NuGet 包时 docfx consoleNuGet
  • 使用 wxWidgets 制作目录中的文件夹列表

    我正在使用 wxWidgets 制作一个应用程序 其中有一个列表框 我想获取应用程序的当前工作目录 并在该列表框中列出 cwd 中包含特定文件的所有文件夹名称 不是完整路径 我已经弄清楚如何获取 cwd 并将其作为 wxString 返回
  • 存储发布数据以供使用 Flask-Login 进行身份验证后使用

    每个文章页面都有一个供登录用户添加评论的表单 我希望用户即使尚未登录也能够发表评论 他们应该被重定向到登录页面 然后添加评论 然而 当 Flask Login 的login required重定向回页面 这不是 POST 请求 并且不保留表
  • 可搜索索引在手动更新时被锁定 (LockObtainFailedException)

    我们有一个在负载均衡器后面运行的 Grails 项目 服务器上运行着三个 Grails 应用程序实例 使用单独的 Tomcat 实例 每个实例都有自己的可搜索索引 由于索引是独立的 因此自动更新不足以保持应用程序实例之间的索引一致 因此 我
  • Java中前缀和后缀++运算符的区别

    与此相关的有几个问题 例如Java 递增 递减运算符的前缀 后缀 但是我not询问后缀和前缀之间的一般区别 运算符 我知道那部分 但是关于它们在 Java 规范级别上的根本区别 具体来说 前缀和后缀有什么区别吗 运营商other比运算符优先
  • zipWith 用于 Haskell 中的树

    我正在使用 Haskell 表达学院学习 Haskell 通过多媒体学习函数式编程 我不确定如何解决这个练习 使用以下给出的树的定义 data Tree a Node Tree a Tree a Leaf a 定义列表函数的树版本zip a
  • 将绘图图像转换为位图图像

    我想绘制大量形状 直线 椭圆等 然后将它们保存为位图或 png 我画了图纸 问题是 如何转换绘图图像 to 位图图像在 C 中 代码是这样的 DrawingGroup drawingGroup new DrawingGroup using
  • AngularJS $http.post() 触发 get 请求而不是 post

    我在 Angular 和 Laravel 中构建 API 服务 当我向 API 发起 GET 调用时 一切工作正常 但是当我发起 POST 调用时 服务仍然使用 GET 方法而不是 POST 这就是我的服务 function LeadsAP
  • 在 Magento 中查找正确的模板和块

    我正在尝试更改 Magento 单页结帐页面 我已经搜索过 find iname onepage 我在 Magento 目录中得到了 5 6 个 onepage phtml 结果 其中几个页面具有完全相同的来源 或几乎完全相同的来源 有没有
  • Android App Widget - 更改 TextView 内容的按钮

    我对 Android 应用程序小部件有点困惑 我知道我可以创建一个按钮来启动活动 但我不知道如何创建一个按钮来编辑小部件内 TextView 的文本 有人可以告诉我我错过了什么吗 预先非常感谢 编辑 我的意思并不是让用户输入新文本 而是让应