我正在做一個應用程序,在這個應用程序,我需要顯示設備的寬度和高度。最初我在一個班級中計算了寬度和高度,然後立即顯示出來。但爲了讓它看起來更有條理,我將它們分開放在一個單獨的課堂上。這段代碼中的類:不能得到屏幕寬度和高度值在另一類
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提供的代碼。謝謝 –