【问题标题】:Android - Best way to show data without large amount of layout filesAndroid - 在没有大量布局文件的情况下显示数据的最佳方式
【发布时间】:2016-11-22 18:42:21
【问题描述】:

感谢您最近的所有帮助!另一个问题!

在我正在构建的应用程序中,我目前有一个带有可扩展 lstview 的布局文件,您可以在其中选择 10 个选项。当您选择其中一个选项时,您会选择另外 4 个选项。从选择星期开始,您还有 3 个选项。这三个选项中的每一个当前都将打开一个新活动,该活动有一个列表视图,每行有一个复选框和文本视图,每行大约 10 行。

我认为必须有更好的方法,而不是制作 30 个可能会使应用程序崩溃的布局文件(不确定要使应用程序崩溃需要多少)。我已经查过了,真的找不到我要找的东西。我已经阅读了一些关于 sqlite 的内容,但是您是否还需要单独的布局文件来调用表格的不同部分?有没有办法用列表视图制作单个布局文件,并根据可展开列表视图中的点击来源,用来自 sqlite 的不同数据填充列表视图?

例如,如果他们在可展开的列表视图中单击锻炼 29,然后单击第 1 周,然后单击第 1 天.. 单个布局是否可以从 sqlite db 加载数据。然后,如果他们返回并说单击第 30 次锻炼,第 2 周,第 3 天,相同的布局会从数据库加载不同的信息?

我也在试图找出如何使双展开列表视图仍然

再次感谢!

【问题讨论】:

  • 需要数千个布局文件才能使应用程序崩溃。只有 30 个的应用程序仍然很小。

标签: android database sqlite android-studio expandablelistview


【解决方案1】:

所以这很简单,您只需为列表视图创建一个 DataAdapter。然后,您可以添加绑定到 onclick 侦听器的列表视图项,然后您可以清除该列表并向其添加新元素。一个有用的链接将是。 https://guides.codepath.com/android/Using-an-ArrayAdapter-with-ListView

【讨论】:

  • 谢谢!我认为没有数据库我应该没问题,因为所有数据都是单行字符串,是对以前收集的数字的计算!谢谢!
  • 请记住,当他们有孩子时,视图会很重,这会导致您的应用加载缓慢。如果您的子视图最少,那么它会更快。这就是为什么构建一维列表视图并在单击时清除它会更好,因为这样你就没有一个巨大的树,android 然后调用内置函数来重绘所有内容。如果我要改变一个孩子,它本质上会重新绘制该孩子的所有父母及其兄弟姐妹。
【解决方案2】:

您应该为所有数据使用 SQLite 数据库(除非您计划将数据保存在内存中,如果数据量相当大,这不是一个好主意)。您应该只创建一个简单的视图并继续重用它。您需要做的是创建自己的适配器(从 BaseExpandableListAdapter 扩展为可扩展列表视图,从 BaseAdapter 扩展为普通列表视图),然后查询 SQLite 数据库表以获取您需要的数据。

如果你只显示String项,你可以直接扩展ArrayAdapter,然后为普通列表提供你想要显示的项数组。

就崩溃而言,有许多应用程序具有超过 30 个布局文件。此外,即使您确实开始加载大量视图,Android 也会在内存开始不足时自动开始销毁视图,并在需要时重新创建它们。

【讨论】:

  • 谢谢!我认为没有数据库我应该没问题,因为所有数据都是单行字符串,是对以前收集的数字的计算!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多