当前位置: 代码迷 >> java >> 如何在Java中跨多个类使用变量?
  详细解决方案

如何在Java中跨多个类使用变量?

热度:103   发布时间:2023-08-02 10:39:33.0

我正在尝试在android studio中创建我的第一个应用程序,在主屏幕上有三个刻度框,询问用户他们想要在骰子上的哪几个面。 我有一个名为sides的变量,它根据用户打勾的复选框设置为6,8或12。 我希望在第二个活动中使用变量“ sides”,以便可以使用它在一个和设置为“ sides”的变量之间生成随机整数。

在第一个活动中,假设您具有按钮GO。 当您单击Button GO时,它应该启动Second Activity,说Activity2。 将以下代码添加到GO按钮的onClick

Intent act2=new Intent(this,Activity2.class);//"this" is  activity reference
act2.putExtra("key",value);
startActivity(act2);

现在,在Activity2的onCreate方法中,您可以按以下方式检索键的值:

Int key=getIntent().getIntExtra("key",0);//0 is default value

与上述操作相同,您可以将“ side”变量的值传递给下一个活动

您还可以将其保存在内部存储器中,并在需要时加载它,这非常有用,因为这样您就可以在每个活动和所需的每个类中加载它。

您可以学习如何。 我建议看全部三个部分。

您可以使用SharedPreferences,

要获取共享的首选项,请在您的活动中使用以下方法:

SharedPreferences prefs = this.getSharedPreferences(
  "com.example.app", Context.MODE_PRIVATE);

要阅读首选项:

String dateTimeKey = "com.example.app.datetime";

// use a default value using new Date()
long l = prefs.getLong(dateTimeKey, new Date().getTime()); 

编辑和保存首选项

Date dt = getSomeDate();
prefs.edit().putLong(dateTimeKey, dt.getTime()).apply();

android sdk的示例目录包含一个检索和存储共享首选项的示例。 其位于:

<android-sdk-home>/samples/android-<platformversion>/ApiDemos directory

最简单的方法是使用单例类。

public class DataHolder {


public int sides  = 0;

    private static DataHolder dataHolder = new DataHolder();

    public static DataHolder getInstance()
    {
        return dataHolder;
    }


} 

DataHolder.getInstance().sides=sideInActivityA;

您可以使用int sideInActivityB = DataHolder.getInstance().sides;访问变量int sideInActivityB = DataHolder.getInstance().sides;

这可以通过静态全局变量或可以通过继承该类的公共变量来完成。 但是,导入全局静态类的功能相同。

  相关解决方案