我需要为我的应用制作教程。为此,我创建了一个名为TutorialClass的类,其中包含一些我需要从其他几个类调用的方法。工作流程非常类似:
第1课:
//...
if(Tutorial.tutorialStep==Tutorial.TUTORIAL_STEP1){
Tutorial.TutorialStep1();
Tutorial.tutorialStep=Tutorial.TUTORIAL_STEP2;
}
第2课:
//...
if(Tutorial.tutorialStep==Tutorial.TUTORIAL_STEP2){
Tutorial.TutorialStep2();
Tutorial.tutorialStep=Tutorial.TUTORIAL_STEP3;
}
依旧...... 我使用的所有类,都不必扩展Activity
你可以在我使用的几个类中找到这段代码。 所以,首先我需要创建一个TutorialClass的实例
TutorialClass Tutorial = null;
所以这就是问题:如何在我必须展示教程的所有类中使用此实例?正如您所看到的, tutorialStep 的值必须在所有类中都可见,并且所有类都必须看到该值或更改它,以便让教程继续上。
以下是我的教程类的代码:
public class TutorialClass{
Context context;
public static int tutorialStep;
final int TUTORIAL_STEP1=1;
final int TUTORIAL_STEP2=2;
final int TUTORIAL_STEP3=3;
//...
TutorialClass(Context context){
this.context = context;
}
public void Tutorial1() { ... }
public void Tutorial2() { ... }
public void Tutorial3() { ... }
//...
}
我读过,存在一个允许达到我的目标的Singleton类,但我注意到它不是最好的解决方案。你有什么解决方案吗?谢谢大家!
答案 0 :(得分:1)
您需要创建另一个返回TutorialClass
public class TutorielInstance {
private static TutorialClass instance;
private static Context context;
public static synchronized TutorialClass getInstance(){
if(instance==null){
instance=new TutorialClass(context);
}
return instance;
}
public static void setContext(Context c){
context=c;
}
}
然后在您可以使用的活动中
TutorielInstance.setContext(this);
TutorialClass tutorialClass=TutorielInstance.getInstance();