gpt4 book ai didi

java - Android 通过 Fragment 或 Activity 中的按钮更新 Widget

转载 作者:行者123 更新时间:2023-12-01 16:39:09 26 4
gpt4 key购买 nike

我很难理解小部件。我完成的所有教程中,我可以直接通过小部件本身上的按钮更新小部件,这看起来很简单。

但是,我找不到任何完整的教程来展示从 fragment 或 Activity 更新小部件的过程。我看到了提供程序类的很多部分代码,但没有看到 fragment 本身的内容。我想单击 fragment 中的按钮,然后将数据发送到小部件。我添加的所有内容都没有更改。

例如:

addToWidget.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Recipe recipes = new Recipe(0, "");
String widgetName = recipes.getName();
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("WidgetName", widgetName);

在这里,我将名称保存到我的共享首选项中,现在我想将其加载到小部件中,但我该如何开始呢?我已经尝试过 Intent 和远程 View 的事情,但我只是不知道我诚实地在做什么。我有一个 RecipeWidgetProvider.class、recipe_widget_provider.xml 和recipe_widget_provider_info.xml。

感谢您的帮助!!

最佳答案

在小部件提供程序(从 AppWidgetProvider 扩展的任何名称)中的 onUpdate 方法中,您检索保存的字符串,然后获得 RemoteViews(小部件布局),如下所示:

 RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.name_of_your_layout);
//then set the text like this
view.setTextViewText(R.id.id_of_your_textview, sharedString);

相同的代码应该在您的按钮单击中起作用,因此如果它没有立即更新,您也可以在那里使用它。只是不要忘记将其添加到您的提供程序中,否则它会在您的小部件更新时将文本重置为默认值。

关于java - Android 通过 Fragment 或 Activity 中的按钮更新 Widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61899609/

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