我有点像Android开发的新手。我试图显示一个完全用Java编写的简单活动,但没有XML,但是它崩溃了。我究竟做错了什么?这是代码:

public class TestActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedinstancestate)
    {
        super.onCreate(savedinstancestate);
        RelativeLayout thislayout = new RelativeLayout(this);
        RelativeLayout.LayoutParams TextViewParams = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);
        TextViewParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
        TextViewParams.addRule(RelativeLayout.CENTER_VERTICAL);
        TextView outputtext = new TextView(this);
        outputtext.setText("Poop!");
        thislayout.addView(outputtext, TextViewParams);
        setContentView(thislayout);
    }
}

最佳答案

Okey,您正在初始化LayoutParams,但未将其设置为TextView。另外,您还必须为父级布局定义LayoutParams,即RelativeLayout

我测试了您的代码并进行了一些更改。尝试做这个

@Override
public void onCreate(Bundle savedinstancestate) {
    super.onCreate(savedinstancestate);

    // setting RelativeLayout Params
    RelativeLayout thislayout = new RelativeLayout(this);
    LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
            LayoutParams.MATCH_PARENT);
    thislayout.setLayoutParams(params);

    // setting TextView Params
    TextView outputtext = new TextView(this);
    RelativeLayout.LayoutParams TextViewParams = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);
    TextViewParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
    TextViewParams.addRule(RelativeLayout.CENTER_VERTICAL);
    outputtext.setLayoutParams(TextViewParams);
    outputtext.setText("Poop!");

    thislayout.addView(outputtext);
    setContentView(thislayout);
}


希望它能对您有所帮助。

08-18 20:03
查看更多