【问题标题】:view SQLite Databases in android listview?在 android listview 中查看 SQLite 数据库?
【发布时间】:2013-04-22 01:39:44
【问题描述】:

我确信有一个简单的解决方案,但我想我会先与这里的所有人核实。

我正在为 android 开发一个数据库创建和管理应用程序,用户可以像 PHPMyAdmin 为普通计算机所做的那样创建和管理数据。

我有用户创建数据库并可以将具有适当样式数据的表插入系统的部分。

下一个优先级是选择输入哪个数据库并修改其内容。有没有办法以列表视图的形式显示可用的数据库及其表内容,供用户输入和编辑所需的数据??

我知道这是一个相当无聊的问题,但这基本上是我在这个应用程序以原始格式运行之前的最后一块拼图。如果您需要任何进一步的信息或任何代码来检查,我很乐意提供。

再次感谢大家的帮助。

【问题讨论】:

    标签: android database sqlite android-listview


    【解决方案1】:

    这是一个关于 SQLite 数据库和在ListView 中显示内容的好教程: http://www.vogella.com/articles/AndroidSQLite/article.html#databasetutorial

    没有过多的编辑,但很容易看出他将值放入数据库的哪个位置。

    YouTube 上的 thenewboston 是一个很好的 Android 教程资源,他浏览了 SQLite 数据库: http://www.youtube.com/watch?v=gEg9OdufXmM

    如果您已经有点知道自己在做什么,那么它非常全面且缓慢,如果您只想跳到这里,他会在这里插入数据/编辑数据库: http://www.youtube.com/watch?v=S3Z4e7KgNdU

    【讨论】:

    • 感谢您的建议。我确实在 sqlite 上看过 thenewboston 并且对如何进行命令和用户更新有相当的了解。正如我所提到的,我正在寻找的是如何在列表视图中查看所有可用的数据库。
    • 这可能会沿着探索创建所有数据库的文件夹并获取它们的文件名并将它们放入类似于教程对数据库内容所做的列表视图的方式进行,然后打开用户选择的数据库。
    • 那么是不是像 inputStream 那样跳入应用程序的数据文件,收集 DB 的名称并将它们解析成一个列表?
    【解决方案2】:

    我知道下面这个可以优化,但现在只需创建一个这样的方法来自动完成。方法...

    1. 在一秒钟内创建一个随机名称的空数据库,
    2. 保存新数据库的位置 - getDatabasePath
    3. 快速删除空数据库,
    4. 从保存的路径中删除文件名以获取目录路径 olny,
    5. 列出数据库路径中的所有文件,不包括“-journal”文件。

    它是这样的:

    ArrayList<String> arr_list_of_db_files = getDBFILES();
    
    pivate ArrayList<String> getDBFILES() 
      {
       ArrayList<String> arr = new ArrayList<String>;
       String db_path, rand_name, str_tmp;
    
       //ad.1-2. random file name for db   
       rand_name = new Random().nextInt((4000000-2000+1)+2000).toString()+".db";
       db_path = openOrCreateDatabase(rand_name, MODE_PRIVATE, null).getPath();
    
       //ad.3.
       deleteDatabase(rand_name);
    
       //ad.4.
       db_path = db_path.replace("/" + rand_name, "");
    
       //ad.5.
       File [] files = new File(db_path).listFiles();
       if (files == null) { return null; }
    
       //so now we get the filenames one by one
       for (int i = 0; i < files.length; i++)
           { 
              str_tmp = files[i].getName();
              if (!str_tmp.endsWith("-journal"))
                 {  arr.add(str_tmp); }
           }
       return arr;
      }
    

    顺便说一句,我无法测试代码,但我希望它没问题,并且你们中的一些人会觉得它有用。

    已编辑:我已经优化了上面的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 2017-08-26
      • 2018-09-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      相关资源
      最近更新 更多