如何在类之间共享变量?

时间:2012-02-25 02:33:02

标签: java android variables android-2.2-froyo

假设我正在制作类似测验的内容,并且我有一个计数器来显示已正确回答的问题数量。如果一个问题得到正确回答,并且显示了一个新屏幕(活动),我该如何将该号码转移到下一个屏幕?

4 个答案:

答案 0 :(得分:5)

当你说屏幕时,你的意思是活动?然后你可能想要通过额外的意图传递它们。

活动1:

    int score;

    ...
    Intent Intent = new Intent(...);
    intent.putExtra("score_key", score);
    startActivity(intent);

活动2的onCreate()

    int score;
    ...

    Bundle extras = getIntent().getExtras();

    // Read the extras data if it's available.
    if (extras != null)
    {
        score = extras.getInt("score_key");
    }

答案 1 :(得分:1)

您可以根据自己的意图在数据包中发送数字,字符串等。

Bundle b = new Bundle();
b.putInt("testScore", numCorrect);
Intent i = new Intent(this, MyClass.class);
i.putExtras(b);
startActivity(intent)

您还可以放置StringArrays和其他一些简单的变量

答案 2 :(得分:0)

您可以通过这种方式在整个项目中共享数据,

public class mainClass 
{
    private static int sharedVariable = 0;


    public static int getSharedVariable()
    {
          return sharedVariable;
    }
}

从其他类/活动中,您可以使用classname和直接访问它。 (点)运算符。例如mainClass.getSharedVariable();

答案 3 :(得分:0)

在Activitiys中存储变量的一个好方法是使用自己的Application Class实现。

public class MyApp extends android.app.Application {

private String myVariable;

public String getMyVariable() {
    return myVariable;
}

public void setMyVariable(String var) {
    this.myVariable = var;
}

在应用程序标记内的Manifest.xml中添加新类:

<application android:name="MyApp" android:icon="@drawable/icon" android:label="@string/app_name">

现在您可以按如下方式操作每个Activity中的变量:

MyApp ctx = (MyApp)getApplicationContext();
String var = ctx.getMyVariable();