Java在Android中覆盖了XML吗?

4
我想知道如果我在XML中编写一段代码,另一段则是在Java中,会发生什么情况。
我的程序中有以下这段代码:
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

public class ActivityName extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // remove title
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
    }
}

在我的清单文件中,我有这个:

<activity android:name=".ActivityName"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Black.NoTitleBar">
</activity>

我的应用程序启动时没有问题,但运行的是Java代码而不是XML中的内容。我猜这对所有XML编辑都适用,但想要确保一下:如果我有一个与XML类似但有一些不同的Java代码,它会使用我的XML格式还是Java代码?

Java代码,即您的Activity类将优先于清单文件。应用程序加载时加载清单文件。当您运行活动时,Activity被调用和执行,因此您可以看到正在执行的内容。 - nasaa
实际上,您的代码与您的XML清单完全不同。 - Konstantin Pribluda
2个回答

2

它将始终使用Java代码,因为它是第二个运行的。但是,如果您在执行某些Java操作(用于布局)之后再从XML中进行膨胀,则XML将覆盖您编写的代码。


1
代码优先于xml。您始终可以从您编写的代码中重新定义事物。正如@Cornholio所指出的那样,如果您从Java代码操作基于xml的配置,则它可能会修改您从Java代码设置的内容。
但是,Android框架永远不会覆盖您创建的xml布局文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接