这是我的代码,我收到了NullPointerException:
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.realplay);
super.onCreate(savedInstanceState);
//setContentView(new RealPlayView(this));
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
String str_ScreenSize = "The Android Screen is: "
+ dm.widthPixels
+ " x "
+ dm.heightPixels;
TextView mScreenSize = (TextView) findViewById(R.id.textview);
mScreenSize.setText(str_ScreenSize);
}
logcat说:
11-04 18:26:24.404: E/AndroidRuntime(15324): Caused by: java.lang.NullPointerException
11-04 18:26:24.404: E/AndroidRuntime(15324): at com.synamegames.stackem.RealPlayActivity.onCreate(RealPlayActivity.java:27)
11-04 18:26:24.404: E/AndroidRuntime(15324): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-04 18:26:24.404: E/AndroidRuntime(15324): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
11-04 18:26:24.404: E/AndroidRuntime(15324): ... 11 more
我已经尝试了很多其他方法来获得屏幕宽度和高度,但它们都不起作用。有什么提示吗?
答案 0 :(得分:2)
我认为问题是在setContentView()
之前调用super.onCreate()
,这可能是第27行。
答案 1 :(得分:0)
下面的代码运行正常所以问题在其他地方,尝试放置Log语句或在调试模式下运行它以找到空指针的位置。
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
String str_ScreenSize = "The Android Screen is: "
+ dm.widthPixels
+ " x "
+ dm.heightPixels;
Log.i("",str_ScreenSize);
答案 2 :(得分:0)
您也可以尝试以下代码:
Display d=((WindowManager)this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
width=d.getWidth();
height=d.getHeight();