繁体   English   中英

在Android上将数组中的黑名单字符串

[英]Blacklist strings in an array on android

我有一个我为朋友制作的应用程序,用于将一个棋盘游戏的比赛随机化,这样玩家每次都会获得一个随机选择的物种。 我想在更新中包括一个允许加入黑名单的功能,以便无法选择某些种族。 最好的方法是什么? 我会接受所有建议。 提前非常感谢。

注意:数组由名称字符串组成,并且我希望此名称在安装了应用程序或更改应用程序之前一直保持不变。

编辑:抱歉,我缺乏明确性。 我通常知道我该怎么做,但是如何从设置菜单中保存设置,以便在关闭和重新打开后持久保存列入黑名单的种族呢? 即使关闭了应用程序,重新打开后我也希望设置保持不变。 这样,下一次(几周后)他们玩游戏时,假设他们的口味没有改变,他们可以单击而无需再次列入黑名单。

没有任何代码,很难确定该怎么做,因为我不知道您如何实现应用程序的其余部分。

我可以想到的一种方法是,如果将整数与每个种族相关联,例如通过使用常量:

public static final GIRAFFE = 1;
public static final GOOSE = 2;

然后,您可以生成随机整数以随机选择每个种族。 如果您创建了用于随机整数生成的方法,则可以传递某些将被排除的数字。 当生成的整数是排除的数字之一时,您可以继续生成随机整数。

例如(因为它是Android,所以我将用Java编写代码)

// assume min = smallest integer assigned to an animal,  
// and max = largest integer assigned to an animal

public static int randomNumber(int ... exclude)
{
    int random = min + (int)(Math.random() * ((max - min) + 1));
    for (int i = 0; i < exclude.length; i++)
    {
         if (exclude[i] == random)
             random = Min + (int)(Math.random() * ((Max - Min) + 1));
    }
    return random;
}

我对StackOverflow有点陌生,所以请告诉我这是否有帮助。

您需要做的是持久化数据。 您可以使用两种解决方案:1)SharedPreferences框架可轻松保存键值对。 请参阅此处以了解如何保存列表在SharedPreferences存储列表或设置

2)使用SQL数据库。 (自定义解决方案)

在情况1中,您将保留被列入黑名单的字符串,在情况2中,最好创建一个包含所有字符串的表,并对是否将其列入黑名单使用布尔值。

我建议使用共享首选项,因为这需要5分钟的时间,而除非您熟悉数据库,否则数据库解决方案将花费您一段时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM