我对我的Android应用程序有两个感兴趣的活动: 活动1转到活动2
我希望将一些整数值传递给Activity2。
Activity1是这样的:
public class Activity1 extends AppCompatActivity {
// some code ...
//handle the click of a button
Intent intent1 = new Intent(Activity1.this, Activity2.class);
intent1.putExtra("var1", 10);
intent1.putExtra("var2", 20);
startActivity(intent1);
}
然后在活动2中,我有这个:
public class Activity2 extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
int var1 = extras.getInt("var1");
int var2 = extras.getInt("var2");
int[] myIntArray = new int[var1*var2];
// more code...
}
// more code...
private OnClickListener myButtonListener = new OnClickListener() {
@Override
public void onClick(View v) {
helperFunction1();
return;
}
};
private void helperFunction1(){
//need to access var1, var2 and myIntArray
}
}
在我拥有var1和var2的类范围变量之前,我的Activity2类中的所有方法都可以访问它们。但是现在,在Activity2中调用onCreate之后,必须声明var1和var2。我觉得有一个非常简单的解决方案,但是如何让var1和var2充当类范围的变量呢?
如果这个问题有点复杂,感谢和抱歉。
答案 0 :(得分:0)
public class Activity2 extends AppCompatActivity{
private int var1 = 0;
private int var2 = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
var1 = extras.getInt("var1");
var2 = extras.getInt("var2");
int[] myIntArray = new int[var1*var2];
// more code...
}
private void helperFunction1(){
int sum = var1 + var2;
}
}
答案 1 :(得分:0)
我知道您希望在类的所有方法中看到var1和var2。简单地说,您需要执行以下操作: 1-在onCreate方法之前声明private int。 2-赋值将在oncreate方法内。因此,每当类被称为var1且var2具有来自classA的值时。
所以你的课应该是这样的:
public class Activity2 extends AppCompatActivity{
private int var1 ;
private int var2 ;
// as well make myIntArray private
private int[] myIntArray ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
var1 = extras.getInt("var1");
var2 = extras.getInt("var2");
myIntArray = new int[var1*var2];
}