我正在关注一个教程,并正在添加一个新视图,如下所示:
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
),您将获得参数列表。它将帮助您查看需要为该方法提供的确切参数类型和顺序。