所以我只花了 4 个小时试图让我的代码工作,我意识到这太愚蠢了。我在 setContentView(blablabla); 之前定义了一个按钮;被称为。为什么这会导致我的应用程序崩溃?
Button schoolNameButton = (Button)findViewById(R.id.schoolNameButton); setContentView(myVIew);
问问题
142 次
2 回答
3
因为setContentView
实际上是您为当前 Activity 设置 UI 的地方。这样做,系统知道哪些 UI 元素与此 Activity 相关联,并且它是所有元素都需要初始化的地方 - 之后setContentView()
。当然,如果你不做这样的事情:
LinearLayout myLayout = new LinearLayout(this);
setContentView(myLayout);
以下是setContentView
来自 SDK 的解释:
公共无效 setContentView (int layoutResID)
在 API 级别 1 中添加 从布局资源中设置活动内容。资源将被膨胀,将所有顶级视图添加到活动中。
public void setContentView(查看视图)
将活动内容设置为显式视图。此视图直接放置在活动的视图层次结构中。它本身可以是一个复杂的视图层次结构。调用此方法时,会忽略指定视图的布局参数。默认情况下,视图的宽度和高度都设置为 MATCH_PARENT。要使用您自己的布局参数,请改为调用 setContentView(android.view.View, android.view.ViewGroup.LayoutParams)。
于 2013-02-15T08:11:47.760 回答
0
这是因为系统需要知道它将在哪个活动/布局视图中执行其操作。所以首先我们需要指定布局(设置内容视图)。然后所有元素(如按钮、图像视图、文本视图等)将在那里被识别.
于 2013-02-15T08:21:45.600 回答