我想在运行时设置按钮宽度,我希望它等于显示宽度的50%。 我使用了以下但我有一个问题“模拟器中没有任何内容”并说 “进程意外停止。请再试一次” 的.java 公共类实验扩展了Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Button btn = (Button) findViewById(R.id.btnmarwa);
btn.setWidth(width/2);
setContentView(R.layout.emailpopup);
}
}
当我评论这一行时
btn.setWidth(宽度);
没有错误并且出现布局,那么在.java文件中将新宽度设置为按钮的位置
答案 0 :(得分:3)
不是直接关于你的问题,但你必须把这个行放在setContentView()之后导致findViewById方法。
喜欢试试这个:
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.emailpopup);
Button btn = (Button) findViewById(R.id.btnmarwa);
btn.setWidth(width/2);
答案 1 :(得分:1)
您应该说明日志中的异常,以便我们可以找出崩溃的原因。
我的猜测是btn为null,因为findViewById返回null,因此btn.setWidth()导致NullPointerException。
这可能是因为你在findViewById之后设置了setContentView,所以视图还没有膨胀。
更改顺序,确保在调用findViewById之前调用了setContentView。