使变量可用于所有片段?

时间:2018-03-12 14:06:36

标签: java android android-fragments fragment

我正在制作一个测验应用程序,有主要活动,它包含的片段就像​​(单选按钮,复选框,拖放问题)。如何从所有片段中收集分数。

5 个答案:

答案 0 :(得分:2)

在主要活动中保留得分变量 private int score = 0;

编写公共函数以获取和设置活动中的分数

public void setScore(int score){
this.score=score;
}

public int getScore(){
return this.score
}

现在,您可以使用

获取并设置分数
  score=((MainActivity)getContext()).getScore()
    ((MainActivity)getContext()).setScore(score)

答案 1 :(得分:0)

只需将变量保持为静态,即存储您的分数。

例如:public static int score=0

通过写静态,它将在内存中有引用,直到可用 活动正在运行。

答案 2 :(得分:0)

有多种方法可以做到这一点。

  1. 您可以在活动中添加Set / Get方法并从中获取 你需要的时候会分段。

  2. 在Activity类中创建static变量,您可以使用'ActivityClassName'进行访问。

  3. 使用共享首选项并随时随地访问该数据。您可以在需要时重置并从任何课程更新。

  4. 您可以根据应用需要使用。

答案 3 :(得分:0)

创建一个Java类并将其命名为DataHolder。将得分变量定义为全局变量。创建getter& setter方法为静态。获得分数后,使用set方法设置值。当你想得分时,使用get方法。它的简单java。最好的是你可以使用这种方法从任何活动或任何片段中获取和设置分数。请尝试以下代码。

DataHolder.java

    public class DataHolder {

    private static String Score="";

    public static void set_Score(String s){
        DataHolder.Score = s;
    }

    public static String get_Score(){
        return DataHolder.Score;
    }
}

要在DataHolder类中设置分数,请使用以下任何片段或活动的代码。

String Score = ""; //get Score to this variable
DataHolder.set_Score(Score);

答案 4 :(得分:0)

尝试使用公共静态最终关键字如果您的值不会通过应用程序更改,则在使用公共静态之前使用公共静态所有没有实例化和值的文件都可以在任何实例中初始化。

示例

git rev-list M^1..M^2

第二种方式是使用共享权限,您可以从here获得帮助。