我正在关注一个教程,并正在添加一个新视图,如下所示:

    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是添加子视图的错误方法吗?

最佳答案

这是方法的声明:

addContentView(View view, ViewGroup.LayoutParams params)

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


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

10-07 14:25