如何在运行时设置按钮的宽度?

时间:2011-09-27 19:12:53

标签: android

我想在运行时设置按钮宽度,我希望它等于显示宽度的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文件中将新宽度设置为按钮的位置

2 个答案:

答案 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。