我正在关注一个教程并添加了一个像这样的新视图:
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是否是添加子视图的错误方法?
答案 0 :(得分:1)
这是方法的声明:
addContentView(View view, ViewGroup.LayoutParams params)
您可以看到它与setContentView
不同。那个只需要设置视图的id
,例如int
。这个你需要提供实际的视图,你可以使用findViewById
或其他方式,以及布局参数。
我学到了非常有用的东西:当你在任何方法的括号内时,点击
CTRL+P
(或mac上的CMD+P
,你将得到参数列表。它将帮助您查看为该方法提供的确切参数类型和顺序。