【发布时间】:2022-11-15 10:59:13
【问题描述】:
我想要一个持续存在于应用程序中的“全局”对象,即使当您启动其他活动或片段时,使用捆绑包在应用程序中传递相同的元素有点烦人。也许与视图模型?我对此不太了解,所以如果你能给我一个例子或一些关于这个主题的指导,那会很方便。先感谢您:)
【问题讨论】:
-
在 android 中搜索“单身人士”。此主题已在此处进行了广泛讨论。
标签: java android android-studio kotlin
我想要一个持续存在于应用程序中的“全局”对象,即使当您启动其他活动或片段时,使用捆绑包在应用程序中传递相同的元素有点烦人。也许与视图模型?我对此不太了解,所以如果你能给我一个例子或一些关于这个主题的指导,那会很方便。先感谢您:)
【问题讨论】:
标签: java android android-studio kotlin
在您可以在项目中引用的单独文件中创建一个静态对象,以便您可以获取和设置它的数据。
object MyStaticClass{
static var myStaticVar : String = "Hello world"
}
通过执行以下操作在文件中引用它:
MyStaticClass.myStaticVar = "A different message"
过去我不得不这样做,我必须保存用户的登录数据才能通过应用程序更改帐户数据。这比必须不断地在视图之间传递数据要容易得多:)
【讨论】:
基本上这很简单。
第 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();
而已 :)
【讨论】: