R.layout-land无法解析为变量

时间:2013-05-30 01:11:12

标签: android android-layout

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

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

    我的错误消息

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

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

3 个答案:

答案 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中的横向映射。