如何在java中的多个类中使用变量?

时间:2015-07-19 11:04:15

标签: java android

我正在尝试在android studio中创建我的第一个应用程序,在主屏幕上有三个勾选框,询问用户他们想要的骰子数量。我有一个名为sides的变量,根据用户勾选的复选框,设置为6,8或12。我想在第二个活动上使用变量“sides”,这样它就可以用来生成一个和任何“边”设置的随机整数。

5 个答案:

答案 0 :(得分:1)

在第一个活动中假设您有按钮GO。当您单击按钮GO时,它应该启动第二个活动,例如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”变量的值传递给下一个活动

答案 1 :(得分:0)

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

你可以学习here的方法。 我建议看三个部分。

答案 2 :(得分:0)

您可以使用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

答案 3 :(得分:0)

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

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;

答案 4 :(得分:-1)

这可以通过静态全局变量或可以通过继承类访问的​​公共变量来完成。但是,导入全局静态类也是一样的。