如何在另一个 activity 中访问在主 activity 中声明的变量
How to access a variable declared in the main activity in another activity
我不知道这是否可行,或者它们是否是更好的编程实践,但我想知道如何在另一个 activity 中使用在主 activity 中声明的变量.源代码片段示例如下所示...
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) {}
现在,我想创建一个新的 activity 来使用变量 "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
}
在你的 main activity(do math 方法所在的地方)中创建一个 public 静态变量,如下所示:
public static int SUM;
然后在 do math 函数中将该值设置为计算出的值。
int sum = a+b;
SUM = sum;
然后您可以通过以下方式访问它:
MainActivity.SUM
您可以使用意图或使用共享首选项将值从一个传递到另一个 activity。
Intent intent=new Intent(MainActivity.this,year_second_semester.class);
intent.putExtras("sum",sum);
startActivity(intent);
那么接下来activity就可以得到这个值了
或使用共享首选项:
里面 class:
SharedPreferences 已共享;
onCreate 内部:
shared=getSharedPreferences("app",Context.MODE_PRIVATE);
计算总和后即完成后 sum=a+b;
Editor edit=shared.edit();
edit.putString("sum",sum);
edit.commit();
接下来 activity:
class 里面:
SharedPreferences 已共享;
oncreate 内部:
shared=getSharedPreferences("app",Context.MODE_PRIVATE);
无论你想去哪里:
String yourvalue=shared.getString("sum","default value");
此处您的值将是主要 activity.
的总和
我不知道这是否可行,或者它们是否是更好的编程实践,但我想知道如何在另一个 activity 中使用在主 activity 中声明的变量.源代码片段示例如下所示...
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) {}
现在,我想创建一个新的 activity 来使用变量 "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
}
在你的 main activity(do math 方法所在的地方)中创建一个 public 静态变量,如下所示:
public static int SUM;
然后在 do math 函数中将该值设置为计算出的值。
int sum = a+b;
SUM = sum;
然后您可以通过以下方式访问它:
MainActivity.SUM
您可以使用意图或使用共享首选项将值从一个传递到另一个 activity。
Intent intent=new Intent(MainActivity.this,year_second_semester.class);
intent.putExtras("sum",sum);
startActivity(intent);
那么接下来activity就可以得到这个值了
或使用共享首选项: 里面 class: SharedPreferences 已共享;
onCreate 内部: shared=getSharedPreferences("app",Context.MODE_PRIVATE);
计算总和后即完成后 sum=a+b;
Editor edit=shared.edit();
edit.putString("sum",sum);
edit.commit();
接下来 activity: class 里面: SharedPreferences 已共享;
oncreate 内部: shared=getSharedPreferences("app",Context.MODE_PRIVATE);
无论你想去哪里: String yourvalue=shared.getString("sum","default value");
此处您的值将是主要 activity.
的总和