我在布局文件夹下有一个login.xml文件;我创建了一个layout-land文件夹,它出现在布局正下方,里面还有一个login.xml文件。在我的Login.java文件中,我可以访问R.layout.loging,但我无法访问R.layout-land.login。我已经读了差不多两个小时而没有运气。 这是我到目前为止所做的:
但没有运气
我的错误消息
[2013-05-29 21:01:46 - Students] 'Landscape Orientation' is not a best match for any device/locale combination.
[2013-05-29 21:01:46 - Students] Displaying it with ', , Locale Language ___Region __,
, sw320dp, w533dp, h320dp, Normal Screen, Long screen aspect ratio, Landscape Orientation,
Normal, Day time, High Density, Finger-based touchscreen, Soft keyboard, No keyboard,
Hidden navigation, No navigation, Screen resolution 800x480, API Level 17' which is
compatible, but will actually be displayed with another more specific version of the
layout.
以下是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int result = this.getResources().getConfiguration().orientation;
if(result == 1)
{
setContentView(R.layout.login);
} else
{
setContentView(R.layout-land.login //Issue here.
}
InitializeVariables();
}
我真的很感激任何帮助/建议。
答案 0 :(得分:1)
您没有指定文件夹。 Android知道使用哪一个。只需使用R.layout.login
,如果它是横向的,那么您的Activity
会选择正确的Layout
根据The Docs
... Android选择在运行时使用哪种替代资源,具体取决于当前的设备配置。
答案 1 :(得分:0)
您可以使用R.layout.login
当它在风景中时,它会自动使用你的布局。与具有任何其他后缀的任何其他文件夹(如-xlarge,-hdpi)相同,它们将在适用时自动使用。
此page
更多参考资料答案 2 :(得分:0)
您根本不需要这样做,只要您遵循他们已经实施的约定,android就会为您选择正确的布局文件。只需执行setContentView(R.layout.login)
,系统将使用res / layout / login.xml中的常规映射(如果是纵向)和res / layout-land / login.xml中的横向映射。