如何在另一个活动中获取变量?

时间:2013-12-19 02:59:37

标签: android

我想在另一个活动中使用变量。

public class Score extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.score);

        TextView q1_teacherside = (TextView) findViewById(R.id.q1_score);
        TextView q2_teacherside = (TextView) findViewById(R.id.q2_score);
        TextView final_score = (TextView) findViewById(R.id.final_score);

        SharedPreferences my_preferences = PreferenceManager
            .getDefaultSharedPreferences(getApplication());

        int q1_answer = my_preferences.getInt("key1", 0);
        int q2_answer = my_preferences.getInt("key2", 0);

        if (q1_answer == 1) {
            q1_teacherside.setText("Correct");
            q1_teacherside.setTextColor(Color.GREEN);
        } else {
            q1_teacherside.setText("Incorrect");
            q1_teacherside.setTextColor(Color.RED);
        }
        if (q2_answer == 1) {
            q2_teacherside.setText("Correct");
            q2_teacherside.setTextColor(Color.GREEN);
        } else {
            q2_teacherside.setText("Incorrect");
            q2_teacherside.setTextColor(Color.RED);
        }
        int finalscore  = q1_answer + q2_answer;
        final_score.setText(finalscore + "/2");
    }
}

我想在另一个活动中使用变量“finalscore”。

有人能回答这个问题吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

在类中创建一个方法,如

public static int getFinalScore(){
   return finalscore;
}

然后在你的新班级

int newfinalScore = PreviousClass.getFinalScore();

或者你可以简单地将finalscore设置为公开。

public int finalscore;
int newfinalScore = PreviousClass.finalScore

注意:不要完成旧活动,因此不会返回原始值。

答案 1 :(得分:0)

你可以把它放在这个活动中:

Intent i = new Intent(Score.this, NewActivity.class);
i.putExtra("finalscore",finalscore);
startActivity(i);

然后在您的其他活动中,您可以检索如下值:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    int finalscore = extras.getInt("finalscore");
}

来源:

How do I pass data between Activities in Android application?