我正在做一个应用程序,在这个应用程序,我需要显示设备的宽度和高度。最初我在一个班级中计算了宽度和高度,然后立即显示出来。但为了让它看起来更有条理,我将它们分开放在一个单独的课堂上。这段代码中的类:不能得到屏幕宽度和高度值在另一类
public class DisplayMeasurement extends Activity{
public int widthScreen = 0;
public int heightScreen = 0;
@SuppressWarnings("deprecation")
public void DisplayHeightWidthMeasurement(){
int Measuredwidth = 0;
int Measuredheight = 0;
Point size = new Point();
WindowManager w = getWindowManager();
if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB_MR2){
w.getDefaultDisplay().getSize(size);
Measuredwidth = size.x;
Measuredheight = size.y;
}else{
Display d = w.getDefaultDisplay();
Measuredwidth = d.getWidth();
Measuredheight = d.getHeight();
}
//int sepertiga = Measuredwidth/3;
//akhir ngukur layar
set(Measuredwidth,Measuredheight);
}
public void set(int Measuredwidth, int Measureheight){
this.widthScreen = Measuredwidth;
this.heightScreen = Measureheight;
}
public int getWidthScreen(){
return widthScreen;
}
public int getHeightScreen(){
return heightScreen;
}
}
那么这是mainActivity一段代码:
DisplayMeasurement screenValue = new DisplayMeasurement();
int WidthScreen = screenValue.getWidthScreen();
int HeightScreen = screenValue.getHeightScreen();
TextView text1 = (TextView) findViewById(R.id.text1);
TextView text2 = (TextView) findViewById(R.id.text2);
text1.setText("lebar" + WidthScreen);
text2.setText("tinggi" + HeightScreen);
但是,我得到的是0值有任何谁经历了同样的事情,或有谁知道这个问题。请帮忙。
这似乎或多或少是正确的。我可能会补充说,你永远不应该手动实例化一个Activity类。始终允许Android实例化您的活动。正如@ user2693394正确地指出,你得到0值的原因是因为你永远不会调用你的DisplayHeightWidthMeasurement()函数来初始化你的值。 – TheIT
谢谢大家。错误是一种耻辱。 “如果该方法从未被称为如何改变它的值”。最后我修复了@ Jerryl15提供的代码。谢谢 –