【问题标题】:is possible to keep an object across all the activities/fragment?可以在所有活动/片段中保留一个对象吗?
【发布时间】:2022-11-15 10:59:13
【问题描述】:

我想要一个持续存在于应用程序中的“全局”对象,即使当您启动其他活动或片段时,使用捆绑包在应用程序中传递相同的元素有点烦人。也许与视图模型?我对此不太了解,所以如果你能给我一个例子或一些关于这个主题的指导,那会很方便。先感谢您:)

【问题讨论】:

  • 在 android 中搜索“单身人士”。此主题已在此处进行了广泛讨论。

标签: java android android-studio kotlin


【解决方案1】:

在您可以在项目中引用的单独文件中创建一个静态对象,以便您可以获取和设置它的数据。

object MyStaticClass{
    static var myStaticVar : String = "Hello world"
}

通过执行以下操作在文件中引用它:

MyStaticClass.myStaticVar = "A different message"

过去我不得不这样做,我必须保存用户的登录数据才能通过应用程序更改帐户数据。这比必须不断地在视图之间传递数据要容易得多:)

【讨论】:

    【解决方案2】:

    基本上这很简单。

    第 1 步:创建一个扩展应用程序的 java 类。

    import android.app.Application;
    
    public class MyApplication extends Application {
    
        public String yourObj;
    
        public String getYourObj() {
            return yourObj;
        }
    
        public void setYourObj(String yourObj) {
            this.yourObj = yourObj;
        }
    }
    

    第 2 步:将应用程序名称定义为您的类。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.someProject">
    
        <application
            android:name=".MyApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round">
            ...
        </application>
    
    </manifest>
    

    这里添加android:name=".MyApplication"里面<应用程序/>标签。

    第 3 步:现在在应用程序中的任何位置使用它。

    ((MyApplication) getApplication()).setYourObj("...");
    ((MyApplication) getApplication()).getYourObj();
    

    而已 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-01
      • 2021-02-04
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      相关资源
      最近更新 更多