1

我在布局文件夹下有一个 login.xml 文件;我创建了一个 layout-land 文件夹,它出现在 layout 的正下方,其中也包含一个 login.xml 文件。在我的 Login.java 文件中,我可以访问 R.layout.loging,但无法访问 R.layout-land.login。我已经阅读了将近两个小时,但没有运气。这是我到目前为止所做的:

  1. 右键单击项目名称并选择“新建->其他-> Android XML布局文件”,然后单击下一步
  2. “login.xml”作为文件名,“LinearLayout”作为根元素,然后单击下一步
  3. 单击方向并将其向右移动并选择景观 -> 它显示 /res/layout-land 作为文件夹名称。我单击完成文件夹土地布局出现在文件夹名称布局下方,并出现以下消息:
  4. 我去项目并清理它
  5. 我去了 Build Path -> Order and Eport 并确保检查了 Android 4.2.2
  6. 我再次确保文件夹名称和/或xml文件名中没有大写或空格
  7. 我没有运气再次构建项目。
  8. 在构建路径中,我将 gen 文件夹移动到 scr 上方。我关闭项目存在eclipse。重新打开eclipse并重建项目
  9. 我检查并没有导入 Android.R.*

但没有运气

我的错误信息

[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();
}

我真的很感激任何帮助/建议。

4

3 回答 3

1

您没有指定文件夹。Android 知道使用哪一个。只需使用R.layout.login,如果它是横向的,那么您Activity将选择正确的Layout

根据文档

...Android 根据当前的设备配置选择在运行时使用的替代资源。

于 2013-05-30T01:14:08.590 回答
0

您可以使用 useR.layout.login 它在横向时会自动使用您的布局。与具有任何其他后缀(如 -xlarge 、 -hdpi )的任何其他文件夹相同,它们将在适当时自动使用。

更多参考在此页面上

于 2013-05-30T01:13:09.930 回答
0

您根本不需要这样做,只要您遵循他们制定的约定,android 就会为您选择正确的布局文件。只需这样做setContentView(R.layout.login),如果纵向,系统将使用 res/layout/login.xml 中的常规选项,而在横向放置时,系统将使用 res/layout-land/login.xml 中的常规选项。

于 2013-05-30T01:13:25.960 回答