【问题标题】:How to go from downloading a file to strings - Android如何从下载文件到字符串 - Android
【发布时间】:2013-07-08 21:58:58
【问题描述】:

我有一个托管在 Internet 上的文本文件,我希望将其下载到内部存储的某个位置,以便可以在离线时使用该信息,但在需要从文本进行更新时,可以用新文件覆盖该文件托管在互联网上的文件。

然后我希望在下载文件后在 onCreate 访问此文本文件,并将文本行更改为可在 TextView @string/stringname123 等中使用的字符串,而不是由系统因此字符串名称每次都可以不同。

简单地按顺序放在一个列表中。

  • 从 Internet 下载的文本文件
  • 将文本文件放在内部存储中以供以后离线使用,覆盖同一位置的任何先前文件
  • 在 onCreate 访问的文本文件
  • 文本文件中的文本已放入已放入 TextView 的预定义字符串名称中,其属性例如:android:text="@string/12312345678"

如何做到这一点?非常感谢任何帮助和信息!

【问题讨论】:

  • 从您的第二段中,您已经证明您对 Android 编程知之甚少。此评论无意以任何方式不尊重您。每个人,包括我自己,都必须从某个地方开始(任何不同意我的说法的人都是骗子)。只是我建议你稍微修改一下你的初始目标,并首先遵循一些关于 Android 的非常基本的教程(这些教程现在甚至不涉及从互联网上下载东西)。例如,您可以在 Google 上搜索有关在 Android 中构建一个非常基本的计算器的编程教程。
  • 基本事实是Android中的字符串xml值是在编译时打包初始化的。而要更改 TextView 中写入的内容,您将使用 Java 进行更新——您不会通过 xml 中的字符串资源来更新它们。
  • @StephanBranczyk 我知道如何从互联网上下载文件并让它工作,但只能在外部存储中而不是在内部存储中。从那里我可能可以使用 FileInputStream 使其在 TextView 中可用,但我不确定如何。我写得很快,读了很多,这确实让我听起来好像我一无所知。我对此很陌生,但不是那么新,而且我很快写的东西很糟糕。抱歉,我完全忘记了您不能在 onCreate 更改字符串值,因为它们是“硬编码”的。
  • 你写得太快所犯的错误并不重要。重要的是你走得太快了,而你现在仍然走得太快。任何人都可以从教程和 stackoverflow 中剪切和粘贴代码,并假设 Eclipse 之神与您同在,让其中一些代码在您自己的 Android 模拟器/设备上运行。作为 Java Android 开发人员,我们很幸运能够找到几乎任何我们想做的任何东西的开源代码示例和教程。然后困难就变成了整合来自不同地方的这些代码。
  • 这就是为什么我建议你放慢速度并稍微降低你的初始目标。以你的方式去做并不会让你更快地成为一个更好的开发者。如果没有别的,情感上的回报,从其他地方剪切和粘贴的东西,快速工作和运行,没有真正努力了解正在发生的事情,可能会给你一种错误的成就感,并且可能会让你失去动力当你试图完成项目的最后 20% 的最关键时刻(你找到的剪切和粘贴代码没有考虑到这一点)。

标签: android string download textview


【解决方案1】:

基本结构是这样的,我这里没有我的电脑,但无论如何这可能会对你有所帮助:

 onCreate(){
   if (check whether you have a data connection with [ConnectionManager][1])
      DownloadFile using [AsyncTask][2]
      declare task
      task.execute()
   else
      open file for reading using [InputStream][3]
      parseStringsFromFile()
  }



 public class someTask extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... urls) {
        string = Downlaodfilefunction using [httpget][4]
    }
    @Override
    protected void onPostExecute(String result) {
        parseStringsFromFile(result)
    }

 }

抱歉,我不能说得更具体,但我相信你可以让它像这样工作。 Ups 链接不显示,这里是:

ConnectionManager

AsyncTask

InputStream

httpget

【讨论】:

    猜你喜欢
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    相关资源
    最近更新 更多