所以我有两个活动,我需要在第一个活动中保存一个变量,并在第二个活动中使用它。谁能帮我?谢谢!
答案 0 :(得分:3)
使用类似的东西:
Intent intent = new Intent(this, ClassImCalling.class);
intent.putExtra("variable", myvariable);
startActivityForResult(intent, int_identifier);
在另一个活动中:
intent = getIntent();
var=intent.getStringExtra("variable");
返回调用它的活动(意图与上面的getIntent()相同):
setResult(RESULT_OK, intent);
finish();
当你回到第一个活动时:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == int_identifier) {
if (resultCode == RESULT_OK) {
Do suff
}else if(resultCode == RESULT_CANCELED){
Action was cancelled :(
}
}
}
答案 1 :(得分:2)
保持简单。在一个类中,您在其他类中设置变量的值,使用该类的实例来获取它。
public class Activity1 {
private String var;
public Activity1() {
setVar("some_value");
}
public String getVar() {
return this.var;
}
public void setVar(String var) {
this.var = var;
}
}
public class Activity2 {
public void doSmth() {
Activity1 a = new Activity1();
String varValue = a.getVar();
}
}
答案 2 :(得分:1)
第一项活动:
....
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra(Consts.EXTRA_EDIT_MODE_KEY, 123);
....
intent.putExtra(_some_key_, _some_data_);
intent.putExtra(_some_key_, _some_data_);
startActivity(intent);
SecondActivity:
.....
Intent intent = getIntent();
int mode = intent.getIntExtra(Consts.EXTRA_EDIT_MODE_KEY, -1);
......
答案 3 :(得分:1)
了解您的要求是在几个Activity类中使用变量值。因为它们是JAVA类,所以你可以为你的任务使用静态变量。
假设你有一个这样的课程,
public class Activity1 extends Activity{
static String name="abc";
}
如果要在其他类中使用该名称变量,可以使用
public class Activity2 extends Activity{
String name2=Activity1.name;
}
答案 4 :(得分:0)
这是一种做法,我想:
class Class1 {
private int someValue = 0
void doSomething(Class2 anotherObj) {
this.someValue = 1;
anotherObj.setValue(this.someValue);
}
}
还有很多其他方法:)
答案 5 :(得分:0)
您可以使用intent.putExtra(yourData);
将第一个活动数据传递给第二个活动答案 6 :(得分:0)
将变量设为静态,因为它由所有类共享。
答案 7 :(得分:0)
如果我们使用共享偏好,我们可以在任何活动中使用此值。
以下是ManageSharesPrefs中的代码:
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString(MY_NAME, "Sai");
prefsEditor.putString(MY_WALLPAPER, "f664.PNG");
prefsEditor.commit();
和追溯值
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
String prefName = myPrefs.getString(MY_NAME, "nothing");
String wallPaper = myPrefs.getString(MY_WALLPAPER, null);
答案 8 :(得分:0)
您可以使用Bundle对象在两个活动之间共享变量。这就是我使用它的方式:
(1)首先,将变量作为额外的变量放入捆绑中。假设您在FirstActivity中有变量并且想要将其发送到SecondActivity,那么这就是放置它的方式(在FirstActivity中):
String variableValue="x"; // it holds some value which you want to pass to SecondActivity.
Intent secondIntent = new Intent(view.getContext(), SecondActivity.class);
Bundle bundleObj = new Bundle();
bundleObj.putString("variableName", variableValue);
secondIntent.putExtras(bundleObj);
startActivityForResult(secondIntent, 0);
(2)这是我们在SecondActivity中获取它的方法(在onCreate()方法中):
Bundle extras = getIntent().getExtras();
String variableValue = extras.getString("variableName");
** Similarly you can pass the integer and other datatyped values as well.