gpt4 book ai didi

java - 如何为所有应用程序的 Activity 共享对象

转载 作者:行者123 更新时间:2023-12-04 08:32:31 25 4
gpt4 key购买 nike

我有一个动画,我想应用到我的应用程序中的每个按钮上。所以我不想在每个 Activity 的 onCreate 方法中调用 AnimationUtils.loadAnimation() 。我只想在启动应用程序时调用此方法一次以初始化我的动画对象,然后在我的不同 Activity 中(使用 getter)获取它。
我是 Android 编程的新手,我计划使用单例模式,但它在与本文和其他 Stackoverflow 页面相关的 Android 中看起来“不安全”。 ( https://programmerr47.medium.com/singletons-in-android-63ddf972a7e7 )
无论如何要在应用程序启动时创建我的动画并在每个 Activity 之间共享它?是否值得做一些优化?

最佳答案

我建议扩展 android Button/AppCompatButton类,将您想要的功能添加到扩展类中,并以这种方式在您的应用程序中随处使用该按钮更容易,而且可能是最正确的方式,
例如:
AnimatedButton.java:

package com.example.myapplication;

import android.content.Context;
import android.util.AttributeSet;

public class AnimatedButton extends androidx.appcompat.widget.AppCompatButton {
public AnimatedButton(Context context) {
super(context);
createAnimation();
}

public AnimatedButton(Context context, AttributeSet attrs) {
super(context, attrs);
}

public AnimatedButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}

private void createAnimation() {
// here create the animation and call
// setAnimation([YOUR_ANIMATION_HERE]);
// now you can simply call customButton.animate();
// from anywhere in the code that uses the button and it should work
}
}
在您要使用按钮的 xml 中:
<com.example.myapplication.AnimatedButton
android:id="@+id/btn_animate"
android:layout_width="180dp"
android:layout_height="80dp"
android:text="Animate" />

关于java - 如何为所有应用程序的 Activity 共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64957350/

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