Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何在活动和小部件之间共享数据?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我阅读了Hellowidget教程和开发指南’App Widgets.然后我知道如何创建一个包含按钮或文本或其他东西的小部件.

但我真正想做的是让它与我的应用程序进行交互.例如,我想创建一个具有文本视图的窗口小部件,当我单击它时,它会向我的活动发送一个PendingIntent,我可以在其中编辑文本.

我可以执行“发送PendingIntent”步骤.但是在我在acitivy中编辑文本后,小部件如何读取它?

解决方法

您需要做的是注册自定义意图,例如appwidgetprovider中的ACTION_TEXT_CHANGED,例如:
public static final String ACTION_TEXT_CHANGED = "yourpackage.TEXT_CHANGED";

在此之后,您需要在您的AndroidManifest.xml中注册您想要在接收器标签的intent-filter部分中接收此意图,如下所示:

<receiver android:name=".DrinkWaterappwidgetprovider">
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_updatE" />
        <action android:name="yourpackage.TEXT_CHANGED" />                
    </intent-filter>
    <Meta-data android:name="android.appwidget.provider"
        android:resource="@xml/appwidget_info" />
</receiver>

然后你必须在appwidgetprovider中扩展onReceive方法,并确保你正在处理你的意图:

@Override
public void onReceive(Context context,Intent intent) {
    super.onReceive(context,intent);
    if (intent.getAction().equals(ACTION_TEXT_CHANGED)) {
        // handlE intent here
        String s = intent.getStringExtra("NewString");
    }
}

完成上述所有操作后,您只需在文本更改后广播您的活动中的意图,如下所示:

Intent intent = new Intent(Yourappwidgetprovider.ACTION_TEXT_CHANGED);
intent.putExtra("NewString",textView.getText().toString());
getApplicationContext().sendBroadcast(intent);

其中“NewString”应更改为您给出字符串的名称.

我希望它有所帮助.

大佬总结

以上是大佬教程为你收集整理的android – 如何在活动和小部件之间共享数据?全部内容,希望文章能够帮你解决android – 如何在活动和小部件之间共享数据?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。