Android Studio - setContentView 不会显示新的 XML 布局

Posted

技术标签:

【中文标题】Android Studio - setContentView 不会显示新的 XML 布局【英文标题】:Android Studio - setContentView Wont Display New XML Layout 【发布时间】:2021-06-28 23:18:24 【问题描述】:

android Studio 非常陌生,我正在学习一个简单的 Udemy 教程。我有:

    成功创建 main.xml 文件 成功利用代码中的文件:setContentView(R.layout.main);

根据教程,我创建了第二个 xml 文件,只有一个简单的按钮,名为“test.xml”。我按照说明在 setContentView 中使用它:

setContentView(R.layout.test);

但是,每次我在更改后运行模拟器时都没有任何反应 - 我得到一个快速关闭的白屏,应用程序无法打开。在“运行”部分,我收到“成功操作成功”消息。构建部分显示“已完成”。

如果我反复重播应用程序,我会在模拟器中收到一条消息,指出:“应用程序名称一直在停止”,但除此之外没有任何实际信息。

我认为我正在正确地创建新的 xml 文件:在 res 文件夹中 -> 新建文件 -> Android 资源文件 -> 给它一个文件名(例如 test)。新的 xml 文件然后落入我的 res 文件夹中的 layout 文件夹中。

我创建了许多 xml 文件,但总是得到相同的结果。我没有看到任何地方显示错误。

在这样一个简单的练习中,我对自己做错了什么感到迷茫。

下面是我的 onCreate 代码:

@Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.testa);

再次 - 如果我将“testa”更改为“main”,它会起作用。

附件是主文件和测试文件的 xml 代码。 xml file 1 xml file 2

【问题讨论】:

我们可以看看你的onCreate()方法 你能把你的文件放在这里吗 我已经添加了onCreate代码和上面的xml文件。 您是否在MainActivity 的任何位置添加了任何findViewById()?切换布局时可能会崩溃,因为testa 没有main 的某些视图 谢谢!!!这是 findViewById() !!!非常感激!用户3170251 【参考方案1】:

为了显示 test.xml,你需要将它添加到你的 xml 文件中

      tools:context=".MainActivity"

并且您的 .java 文件必须以 MainActivity.java 命名。

简而言之,如果您想将任何 xml 文件与 java 类绑定,则将上述属性添加到主布局中。java 文件名必须与工具中的相同:context="._____"

【讨论】:

感谢您的贡献。我早些时候尝试过,但没有奏效。 2 个 xml 文件的初始代码是相同的 - 除了背景颜色。 不幸的是这没有效果。模拟器仍然没有运行应用程序。

以上是关于Android Studio - setContentView 不会显示新的 XML 布局的主要内容,如果未能解决你的问题,请参考以下文章

:Android环境配置以及基本概念

更改 UIAlertView 的背景颜色,我收到警告:未找到 -setContents 方法

升级到 Jetpack Compose Alpha 12 会导致 setContent 出现错误

Ueditor百度编辑器中的 setContent()方法的使用

QT 使用QDomDocument::setContent()读XML文件总是返回false

Ueditor1.3.6 setContent的一个bug