例如,我的布局如下所示
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
</RelativeLayout>
我可以做吗
RelativeLayout rl = (RelativeLayout)findViewById(R.layout.activity_main);
rl.someMethod();
当我尝试时,我得到了一个 NPE,但我很好奇这样访问它是否可行。
最佳答案
您可以以编程方式访问您的RelativeLayout
。您做错的是您试图访问 findViewById 中的布局文件。您应该做的是指定相对布局的 id,而不是包含它的文件的名称。为此,首先将 id 设置为您的相对布局
android:id="@+id/someRelativeLayout"
然后在调用setContentView(R.layout.activity_main)
之后执行:
RelativeLayout rl = (RelativeLayout)findViewById(R.id.someRelativeLayout);
rl.someMethod();
关于java - 我可以通过 findViewById 以编程方式访问我的 XML 布局吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22452105/