[英]Create and Add TextView Progmmatically in android
我试图将TextView
编程添加到may RelativeLayout
。 它不起作用。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RelativeLayout rl = (RelativeLayout) findViewById(R.layout.activity_main);
TextView tv = new TextView(MainActivity.this);
tv.setText("Hello World");
tv.setTextColor(Color.BLACK);
tv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
rl.addView(tv);
setContentView(R.layout.activity_main);
}
您应该在super.onCreate
之后super.onCreate
调用setContentView(R.layout.activity_main)
。
我这样做了:
我去了main_activity.xml,并向RelativeLayout添加了一个属性android:id="@+id/activity_main"
。
编辑代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //RelativeLayout rl = (RelativeLayout) findViewById(R.layout.activity_main); RelativeLayout rl = (RelativeLayout) findViewById(R.id.activity_main); TextView tv = new TextView(MainActivity.this); tv.setText("Hello World"); tv.setTextColor(Color.BLACK); tv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); rl.addView(tv); }
但仍然,textView将与RelativeView上的其他生成项重叠。 也许您应该考虑改为使用LinearLayout垂直方向。
对setContentView(R.layout.activity_main)
的调用将重新填充您的布局,从而覆盖您之前所做的添加。 向上移动,这是super
调用之后的第一件事。 就像是:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout rl = (RelativeLayout) findViewById(R.layout.activity_main);
TextView tv = new TextView(MainActivity.this);
tv.setText("Hello World");
tv.setTextColor(Color.BLACK);
tv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
rl.addView(tv);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.