我看到了一些代码:

    ....
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    protected int getLayoutResource() {
        return R.layout.activity_home;
    }
    ....


他们在其中使用getLayoutResource()而不是setContentView来添加View Layout
我不明白,为什么会这样。在getLayoutResource()之前还是与onCreate(Bundle savedInstanceState)一起使用。
我在android developer document中阅读了一些有关getLayoutResource()的信息(获取该布局资源将显示为该首选项的视图。),但我不理解。

有谁可以解释更多。

我想知道应该在哪里使用getLayoutResource()

最佳答案

尽管我无法从您的代码片段中看出来,但我认为您不是在谈论首选项,因为首选项没有onCreate(据我所知)。因此,我假设您正在谈论活动中名为getLayoutResource的自定义方法。这样,getLayoutResource可能仅返回布局资源ID,而不对其进行任何操作。然后,返回的布局资源ID可以由setContentView在onCreate中使用,这实际上会使资源膨胀。我们以这种方式使用它:

public abstract class BaseActivity {
    @Override
    onCreate(Bundle savedInstanceState) {
        setContentView(getLayoutResource);
    }

    protected abstract int getLayoutResource();
}

public class MyActivity extends BaseActivity {
    @Override
    protected int getLayoutResource() {
        return R.layout.my_activity_layout;
    }
}


简而言之,可以在需要视图的布局资源ID的任何地方使用getLayoutResource。

要了解有关setContentView的更多信息,请查看以下内容:https://developer.android.com/reference/android/app/Activity.html#setContentView

此答案讨论了getLayoutResource和setContentView之间的区别:What is the different between setContentView and getLayoutResource in android?

关于android - Android-函数getLayoutResource()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29920693/

10-12 04:56