簡體   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