我有点像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);
}
希望它能对您有所帮助。