使用addContentView将新的子视图添加到主视图

时间:2017-01-06 16:26:45

标签: android android-view

我正在关注一个教程并添加了一个像这样的新视图:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_potential);
    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_NAME);
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_potential);
    layout.addView(textView);

但是当我想删除视图并返回主视图时,使用setContentView会导致问题。

所以我尝试使用addContentView:

    super.onCreate(savedInstanceState);
    addContentView(R.layout.activity_display_potential);
    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_NAME);
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_potential);
    layout.addView(textView);

我认为这只是一个简单的改变,但我收到了这条消息:

  

addContentView无法应用于int。

addContentView是否是添加子视图的错误方法?

1 个答案:

答案 0 :(得分:1)

这是方法的声明:

addContentView(View view, ViewGroup.LayoutParams params)

您可以看到它与setContentView不同。那个只需要设置视图的id,例如int。这个你需要提供实际的视图,你可以使用findViewById或其他方式,以及布局参数。

  

我学到了非常有用的东西:当你在任何方法的括号内时,点击CTRL+P(或mac上的CMD+P,你将得到参数列表。它将帮助您查看为该方法提供的确切参数类型和顺序。