到目前为止很好的答案。这是完整性的“另一种方式”解决方案之一。
您可以考虑使用 Set。
public Set<String> getPlayerNames() {
TreeSet<String> playerNames = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
然后使用
if (playerNames.contains(newPlayer)){}
然后,即使在运行时也可以轻松控制集合的大小写敏感度,如果它有意义的话。
[编辑]
也就是说,您的问题可能是“设计一个让我创建、删除和修改播放器的应用程序的正确方法是什么,其详细信息存储在 SQLite 数据库中?”。你没有问那个问题,但我还是会回答这个问题,因为这个问题应该在这个问题之前提出。
花一些时间在谷歌上搜索“软件设计模式”,尤其是 MVC(模型视图控制器)。MVC 是许多 Android 应用程序中使用的标准模式。模型是您想要使用的真实世界数据(玩家)。View(s) 是您的应用程序、ListViews、TextViews 等的接口。控制器(Java 适配器)是将两者绑定在一起并控制如何将数据传递到您的 UI 以及如何对数据进行更改。
此刻,你有一个大约 3 英寸高的小家伙站在你的左肩上说:“给我看看你有什么。我想尽快看到这个在我的手机上运行。完成它并稍后找出错误”。他也很吵闹,难以忽视。
如果你仔细观察,你会看到另一个小家伙在你的右肩上说“先把设计做好。然后开始构建应用程序。我不介意等一会儿,因为最终结果会更好”。这个人说话的声音要小得多,而且通常不是很自信。
你的工作是向左边的人放火,让他逃跑,然后把 Ben 和 Jerrys 的网络钓鱼冰淇淋喂给右边的人,让他在附近闲逛,给你更多好的建议。
所以让我们听一会儿右边的家伙:
“好吧,马蒂亚斯,有很多方法可以解决这个问题,但在你学习的过程中,让我们坚持使用通用方法。这将使谷歌很容易找到你需要将它们拼接在一起的各个组件。
您已经有了一个包含 Players 表的数据库,其中包含有关 Players 的数据。让我们在代码中创建一个代表玩家的类。
public class Player{
public int id;
public String name;
public Boolean likesPhishFood;
}
现在,当我们启动我们的应用程序时,我们可以将表中的数据加载到我们的应用程序中,以便开始使用它。使用适配器怎么样?然后我们可以使用 Cursor 来查询我们的数据库,我们可以使用它来创建一个适配器,也许是 SimpleCursorAdapter,然后最终将我们的适配器绑定到 ListView。稍后,您可以添加 onClickListener 和 onLongClickListener 以在用户单击列表中的 Player 时执行某些操作。
所有这一切的好处是,毫无疑问,您的代码最终将导致在更短的时间内生成您的应用程序;会更容易阅读;将有更少的错误,也许最重要的是,将更容易改变。
我几乎可以保证,在某个时间点,通常是大约一半,你会想要添加一些关于玩家的数据。也许他们玩过的次数,或者他们有蓝眼睛。使用 MVC 设计,与在代码中寻找 ArrayList 和为适应新数据而需要更改的循环相比,此类更改更容易进行,并且更不容易产生新的错误。
当然,在你的应用程序准备好之前你需要更多的时间,但你将在此过程中学到的东西将多次收回投资——在这个应用程序和你将来使用的其他应用程序中。”
听右边那个人的。他讲道理。
http://www.mysamplecode.com/2012/07/android-listview-cursoradapter-sqlite.html
祝你好运。