我看到了一些代码:
....
@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/