gpt4 book ai didi

java - NullPointerException 使用 getWindowManager()

转载 作者:行者123 更新时间:2023-11-29 20:45:33 25 4
gpt4 key购买 nike

为什么 SAMPLE1 代码工作正常而 SAMPLE2 抛出 NullPointerExceptiongetWindowManager() 只在 onCreate 内工作吗?我可以做些什么来创建一个方法来返回 View 的高度并使其可用于所有子类?请帮助..

样本 1

public class MainActivity extends ActionBarActivity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
final int height = displaymetrics.heightPixels;
float imheight= (float) (height*.4);
int h=Math.round(imheight);

ImageView im=(ImageView)findViewById(R.id.mainnews1);
im.getLayoutParams().height = h;
im.setScaleType(ImageView.ScaleType.FIT_XY);

}

样本 2

public class MainActivity extends ActionBarActivity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ImageView im=(ImageView)findViewById(R.id.mainnews1);
im.getLayoutParams().height = new MainActivity().heightof();
im.setScaleType(ImageView.ScaleType.FIT_XY);
}

public int heightof()
{
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
final int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
float imheight= (float) (height*.4);
int h=Math.round(imheight);
return h;
}
}

最佳答案

您不应该调用 new MainActivity(),而是尝试传递或使用 MainActivity.this 之类的上下文

关于java - NullPointerException 使用 getWindowManager(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30421052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com