如何访问另一个活动中主活动中声明的变量

时间:2015-04-12 21:05:46

标签: java android android-activity global-variables

我不知道这是否可行,或者它们是否是更好的编程习惯,但我想知道如何在另一项活动的主要活动中使用变量。源代码片段示例是这样给出的......

public class MainActivity extends ActionBarActivity {
private int a, b;
private EditText first, second;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    first = (EditText) findViewById(R.id.first_entry);
    second = (EditText) findViewById(R.id.second_entry);   }

public void doMath(View view) throws Exception {
    try {
        if (!first.getText().toString().equals("")) {
            a = Integer.parseInt(first.getText().toString());
        }
        else {
            a = 0;
        }
        if (!second.getText().toString().equals("")) {
            b = Integer.parseInt(gpa_credits1.getText().toString());
        }
        else {
            b = 0;
        }

        int sum = a + b;    }catch (Exception e) {}

现在,我想创建一个新活动来使用变量" sum"像...一样做数学...

public class first_year_second_semester extends Activity {


 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.newActivity);
    int blah = 5;
    private TextView soln;
    soln = (TextView) findViewById(R.id.the_soln);
    soln = (blah / sum) //i.e sum from the previous activity...please i need this
}

2 个答案:

答案 0 :(得分:3)

在主活动(do数学方法所在的位置)中创建一个公共静态变量,如下所示:

public static int SUM;

然后在do数学函数中将该值设置为计算值。

int sum = a+b;
SUM = sum;

然后您可以通过以下方式访问它:

MainActivity.SUM

答案 1 :(得分:2)

您可以使用intent或使用共享首选项将值从一个活动传递到其他活动。

Intent intent=new Intent(MainActivity.this,year_second_semester.class);
intent.putExtras("sum",sum);
startActivity(intent);

然后在下一个活动中,您可以获得此值。

或使用共享偏好: 课内:         共享的SharedPreferences;

在onCreate中:           共享= getSharedPreferences("应用",Context.MODE_PRIVATE);

计算总和之后I.e.在做完sum = a + b;

之后
Editor edit=shared.edit();
edit.putString("sum",sum);
edit.commit();

在下一个活动中: 课堂内:     共享的SharedPreferences;

里面的oncreate:         共享= getSharedPreferences("应用",Context.MODE_PRIVATE);

你想要的Wherver:     String yourvalue = shared.getString(" sum","默认值");

此处您的值将是主要活动的总和。