-4

我在应用程序编程中遇到了一些问题。找了好久没找到解决办法,希望能帮到你。

假设我已经构建了一个应用程序,使用户能够通过号码所有者的姓名保存电话号码。因此,该活动包含两个 EditeText:一个用于人名,一个用于他的号码,以及一个用于保存的按钮。

如何使“应用程序”将用户交互保存到文本文件或任何其他文件中,文件名 = 人名 + 文件内容 = 他的号码。

我想添加另一个活动,允许用户通过其所有者的插入名称搜索数字,而且我不知道如何设置此功能。

4

3 回答 3

1

如何使“应用程序”将用户交互保存到文本文件“或任何其他文件!” 与“文件名=人名+文件内容=他的号码”

因为我想添加另一个活动,允许用户通过插入其所有者的名称来搜索数字

从您对问题的描述来看,这听起来像是使用SQLite数据库存储数据的好理由。

从一开始就很好。我认为您对文件的想法既不好也不高效。让我们想象一个案例,如果您有百万个数字>,在这种情况下您将有百万个文件。那么如果你想读取文件的内容,你需要打开每个文件来获取数据,这不好,不是吗?还设计模式一个文件=一个记录(用户)

Also searching in second Activity will be "hardcoded". Here you had to go through files and compare their names on the basis of name entered by User.

So as my recommendation is to use SQLite rather than approach with files. Here writing and reading your data becomes more comfortable, safe and effective. Just create table called User with two columns(name, number) and perform appropriate actions. If you don't know how to start, read this pretty good article:

于 2013-03-30T07:18:54.630 回答
0

您可以尝试使用此功能将内容写入手机 sdcard 文件夹中的文件。

public void appendToFile(String content, String name)
    {
       File logFile = new File("sdcard/"+name+".txt");
       if (!logFile.exists())
       {
          try
          {
             logFile.createNewFile();
          }
          catch (IOException e)
          {
             e.printStackTrace();
          }
       }
       try
       {
          //BufferedWriter for performance, true to set append to file flag
          BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true));
          buf.append(text);
          buf.newLine();
          buf.close();
       }
       catch (IOException e)
       {
          e.printStackTrace();
       }
    }

请注意,您将需要

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

在您的 AndroidManifest.xml 文件中。

于 2013-03-29T23:21:41.180 回答
0

You should read this: http://developer.android.com/guide/topics/data/data-storage.html. It's a guide on how to save data in an Android app.

I would suggest a SQLite database for this particular task and not saving as files on the file system.

于 2013-03-30T07:24:41.453 回答