繁体   English   中英

在Android中以编程方式创建和添加TextView

[英]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)

我这样做了:

  1. 我去了main_activity.xml,并向RelativeLayout添加了一个属性android:id="@+id/activity_main"

  2. 编辑代码:

     @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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM