【问题标题】:How to use java to check if an xml file exists? If not - create it如何使用java检查xml文件是否存在?如果没有 - 创建它
【发布时间】:2013-03-09 12:44:48
【问题描述】:

类似

if(!getContentView(R.layout.mainfile).exits){
  //create the xml file in the layout folder here
  setContentView(R.layout.mainfile);
  initvar();
}
else
{
initvar();
}

另一个小问题是:我可以用 Java 从无到有生成任何 XML 文件吗? (是或否问题)

【问题讨论】:

    标签: java android xml file


    【解决方案1】:

    生成的R.java 引用的资源(/res 目录中的 XML)被编译成 resources.arsc 文件,因此这些 XML 文件甚至无法像设备上的普通文件那样访问。此外,“if exists”语句是在编译时完成的:如果您在代码中引用未定义的资源,它将无法编译。所以不需要在运行时检查。

    一般来说,您可以使用例如从您的设备加载 XML 文件。 XmlPullParser,然后在布局文件的情况下将其传递给 LayoutInflater.inflate()。不知道你为什么要这样做。

    【讨论】:

    • 好吧,我需要创建这个:一个人第一次打开程序,它要求他列出他拥有的所有房间。然后为每个房间创建一个带有元素的布局。然后将其保存到首选项中。下次他打开程序时,它会自动打开带有房间的 xml 文件。他还可以打开首选项并添加更多房间,因此程序将编辑 xml 以添加房间的新布局(或删除旧的并生成具有 +1 布局的新 xml)。有没有更好的方法来做到这一点?
    • 据我了解,您所需要的只是一个 ListView 类型的布局,该布局将为每个房间填充一个视图。它基本上归结为膨胀一个包含相关元素的“通用”视图(例如,房间大小的 EditText)并从保存的“首选项”中设置元素的值。这不需要每次都使用不同的布局,而只需使用您之前保存的数据调整参数中的一个。换句话说,您在 ListView 中从一个布局定义创建了许多视图。
    • 问题是我需要同时查看它们,因为它们会显示房间的温度。所以 atm 我有一个带有 LinearLayouts(v) 的 LinearLayout(h)。我把它们都做成了可点击的,所以如果你点击它们,那层会变成橙色,变宽,+ - 按钮似乎会改变温度。
    • 不确定我能不能准确地看到你想要的东西。无论哪种方式,您都可以从布局中扩展视图并将其添加到每个房间的线性布局之一。尽管如此,ListView 听起来更实用:您可以有一个对话框或新活动,您可以在其中单击它来编辑项目。或者使用 PreferenceActivity 提供的功能和可选层次结构。
    • i1102.photobucket.com/albums/g457/rvdincowform/distancinis.png 4 个房间名称在最上面,两个文本视图是现在的温度和您想要的温度(您用 + - 设置它)。自动按钮使菜单弹出。
    猜你喜欢
    • 2019-04-21
    • 1970-01-01
    • 2013-02-06
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2011-09-15
    相关资源
    最近更新 更多