我在旁边int jj
函数中声明了onConfigurationChanged
现在我想在同一个班级的任何地方的onConfigurationChanged
之外访问它。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
final int jj=4;
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
final int jj=2;
}
}
我想在同一个类中访问此变量,如下所示:
public class MainActivity extends Activity {
public static int aa=jj;
}
答案 0 :(得分:2)
将其声明为类字段。我不知道你在aa
做了什么。
public class MainActivity extends Activity {
public int jj;
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
jj=4;
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
jj=2;
}
}
}
从问题中可以清楚地看出,您并不真正了解编程,OOP和Java的基础知识。
我建议您在继续操作之前完成一些基本教程,直到您理解基元与对象final
和static
。
你也应该理解你不能像POJO那样对待Activity
。
答案 1 :(得分:0)
好吧,你可以创建一个类来保存全局变量:
public class GlobalVariables {
public static int jj = 0;
}
然后,您只需拨打GlobalVariables.jj
e.g。
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
GlobalVariables.jj=4;
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
GlobalVariables.jj=2;
}
和
public static int aa= 0;
...
aa = GlobalVariables.jj;
但是,我非常同意西蒙的观点。你需要学习面向对象设计的基础知识,因为你提出的要求打破了一些OOD原则,我建议的解决方案肯定是一种过度杀伤。