Android全局变量动态值

时间:2015-04-28 07:49:49

标签: android global-variables

大家好我想利用一个全局整数变量,我将根据用户的对错选择在7种不同的活动中递增。问题是我每次在每个不同的活动中实现变量时,都不会保留该值。相反,我得到变量的默认值。我想要的是,当我在下一个变量中再次使用它时,我保存对变量的每个增量。任何帮助赞赏。 我尝试过但都失败了:

public class MyApplication extends Application {

private int grade=0;

public int setGrade(int grade) {
    this.grade = grade;
}

public int getGrade() {
    return grade;
}

}

public class lessonOnePhoto extends Activity {

private int grade = ((MyApplication) this.getApplication()).getGrade();

if (rbtn[0].getText().toString().equals("Boy")) {
grade++;
}
else {
Toast.makeText(getApplicationContext(),"Wrong Choise",Toast.LENGHT_SHORT).show();
}
}

4 个答案:

答案 0 :(得分:2)

您正在递增的grade是您的活动的本地和私人。它也是一个原始的而不是一个对象,因此grade = .getGrade()将局部变量设置为与全局值相同的值,它不是某种引用。

相反,做这样的事情:

MyApplication myApplication = ((MyApplication) this.getApplication());
myApplication.setGrade(myApplication.getGrade()++);

或实施增量减量方法。

public class MyApplication extends Application {

private int grade=0;

public int setGrade(int grade) {
    this.grade = grade;
}

public int getGrade() {
    return grade;
}

public void incrementGrade() {
    grade++;
}

public void decrementGrade() {
    grade--;
}

答案 1 :(得分:0)

您必须增加原始应用程序值..而不是复制以在活动之间维护变量

if (rbtn[0].getText().toString().equals("Boy")) {
grade++;
}

更改为

if (rbtn[0].getText().toString().equals("Boy")) {
((MyApplication) this.getApplication()).setGrade(grade++)
}

答案 2 :(得分:0)

您可以在应用程序类中添加一个方法来增加值

public class MyApplication extends Application {

private int grade=0;

public int incrementGrade() {
    this.grade = grade + 1;
}

public int setGrade(int grade) {
    this.grade = grade;
}

public int getGrade() {
    return grade;
}
}

并在需要时递增

MyApplication myApplication = ((MyApplication) this.getApplication());
myApplication.incrementGrade();

或================

通过以静态方式访问该等级使该等级成为静态和增量

 public static int grade = 0;

访问它谎言

 MyApplication.grade ++;

答案 3 :(得分:0)

您可以get the result from the activities用户输入回复并从管理所有回复的MainActivity处理回复。

避免在Application类中存储信息的另一个选择可能是使Singleton具有存储全局变量的共享实例。但是,在some cases中使用单身人士被认为是一种不好的做法。