当设备找到互联网连接时,为xml文件创建共享首选项并更新文件

时间:2014-09-30 05:23:56

标签: android xml sharedpreferences

我正在开发一个Android应用程序,它有一个带有两个按钮公寓和银行的Activity。当用户点击公寓时,它应解析来自xml文件的数据并分配给列表视图。此xml文件保存在assets文件夹中,我想为此文件创建一些共享首选项。如果我的设备找到Internet连接,我还想更新共享首选项。

这是我的XML文件的结构:

<?xml version="1.0" encoding="UTF-8"?>
<address_book>
    <apartments>
        <apartment>
            <name>Villa Alvarado</name>
            <street_address>6050 Montezuma Rd San Diego CA 92115</street_address>
            <web_address>http://housing.sdsu.edu/housing/apartments.aspx</web_address>  
            <phone>(619) 594-2747</phone>   
        </apartment>
        <apartment>
            <name>Zuma Apartments</name>
            <street_address>6237 Montezuma Rd San Diego CA 92115</street_address>
            <web_address>http://liveatzuma.com/</web_address>
            <phone>(619) 265-9862</phone>
        </apartment>
    <apartments>
    <banks>
        <bank>
            <name>USE Credit Union</name>
            <street_address>5500 Campanile Drive San Diego CA 92182</street_address>
            <web_address>https://www.usecu.org/home/home</web_address>
            <phone>(866) 873-4968</phone>
        </bank>
        <bank>
            <name>Wells Fargo</name>
            <street_address>4690 63rd St San Diego CA 92115</street_address>
            <web_address>https://www.wellsfargo.com/</web_address>
            <phone>(619) 583-9084</phone>
        </bank>
    </banks>
</address_book>

2 个答案:

答案 0 :(得分:1)

为什么不使用SharedPreferences以编程方式创建此类xml文件

我不知道为什么在安装应用程序时在资源文件夹中保存xml文件。我想你不知道共享偏好的正确用法,让我对这些概念有所了解。

<强> 1。创建SharedPreferences xml SharedPreferences是从代码中以编程方式创建的xml文件。要创建此类xml文件,您需要编写以下代码

SharedPreferences sharedpreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);

上述语句将在/data/data/YOUR_PACKAGE_NAME/shared_prefs/MyPreferences.xml

创建一个xml文件

2.创建参数:现在,当您调用sharedpreferences.getString(Name, "Butterflow");时,此语句将在xml文件MyPreferences中创建一个名为Name的参数,其默认值为Butterflow


3.修改值:稍后您可以通过编写以下代码来修改参数名称的值

      SharedPreferences.Editor editor = sharedpreferences.edit();
      editor.putString(Name,"Akshay");  //new value of the parameter
      editor.commit(); //will commit your changes

4.Retreiving the value:要在以后检索值,您可以写

    String stringValue = sharedprefernces.getString(Name, ""); //Now the second parameter will be useless and dummy because there is no default value needed

那么为什么不以编程方式创建这样的xml文件,似乎很容易操作,不是吗?请看这里How to use SharedPreferences in Android to store, fetch and edit values

答案 1 :(得分:0)

我一开始并不了解您的用例。

你不应该使用SharedPreferences使用数据库。 SQLite应该是这个用例的完美选择。

您将拥有以下逻辑:

  1. 解析XML并将数据写入数据库
  2. 查找互联网连接
  3. 从数据库中检索数据并进行更新。
  4. 要启动的一些链接: Content Providers in AndroidSQLite usage in Android application