Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使变量可用于所有片段?_Java_Android_Android Fragments_Fragment - Fatal编程技术网

Java 使变量可用于所有片段?

Java 使变量可用于所有片段?,java,android,android-fragments,fragment,Java,Android,Android Fragments,Fragment,我正在制作一个测验应用程序,里面有主要的活动,它包含一些问题片段,如单选按钮、复选框、拖放问题等。如何从所有片段中收集分数。只需保持存储分数的变量静态即可 例如:public static int score=0 通过写入static,它将在内存中具有引用,并且在 活动正在运行 只需将存储分数的变量保持为静态即可 例如:public static int score=0 通过写入static,它将在内存中具有引用,并且在 活动正在运行 在主活动中保留分数变量 私人智力得分=0 编写公共函数以获取

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

只需保持存储分数的变量静态即可

例如:
public static int score=0

通过写入static,它将在内存中具有引用,并且在
活动正在运行

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

例如:
public static int score=0

通过写入static,它将在内存中具有引用,并且在
活动正在运行

在主活动中保留分数变量 私人智力得分=0

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

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

public int getScore(){
return this.score
}
现在在片段中,您可以使用

  score=((MainActivity)getContext()).getScore()
    ((MainActivity)getContext()).setScore(score)

在主活动中保留分数变量 私人智力得分=0

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

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

public int getScore(){
return this.score
}
现在在片段中,您可以使用

  score=((MainActivity)getContext()).getScore()
    ((MainActivity)getContext()).setScore(score)

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

  • 您可以在活动中添加Set/Get方法,并从 当你需要它们的时候,把它们分开

  • 在活动类中创建
    static
    变量,您可以使用“ActivityClassName”进行访问

  • 使用共享首选项并在任何地方访问该数据。您可以在需要时重置并从任何类更新


  • 您可以根据应用程序的需要使用

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

  • 您可以在活动中添加Set/Get方法,并从 当你需要它们的时候,把它们分开

  • 在活动类中创建
    static
    变量,您可以使用“ActivityClassName”进行访问

  • 使用共享首选项并在任何地方访问该数据。您可以在需要时重置并从任何类更新


  • 您可以根据应用程序的需要使用

    创建一个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);
    

    创建一个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);
    

    如果您的值不会在整个应用程序中更改,请尝试使用public static final关键字,否则请在变量类型之前使用public static,该变量类型将在所有文件中保持可访问性,而不进行实例化,并且可以在任何实例中初始化值

    示例

    public static int score;
    public static final int score=5; 
    

    第二种方法是使用SharedReferences,您可以从中获得帮助

    如果您的值不会在应用程序中更改,请尝试使用public static final关键字,否则请在变量类型之前使用public static,该变量类型将在所有文件中保持可访问性,而不进行实例化,并且可以在任何实例中初始化值

    示例

    public static int score;
    public static final int score=5; 
    

    第二种方法是使用SharedReferences,您可以从中获得帮助

    在提交答案时,您需要提交给保存该片段的活动。或者您可以使用shared fragment。在提交答案时,您需要提交给保存该片段的活动。或者您可以使用共享片段。@johnvatic很高兴它有帮助。@johnvatic很高兴它有帮助。