2014-01-10 2 views
0

보드 게임을 위해 임의로 선택한 종을 플레이어가 얻도록 친구를 위해 만든 앱이 있습니다. 특정 레이스를 선택할 수 없도록 블랙리스트를 허용하는 기능을 업데이트에 포함하고 싶습니다. 이것에 대해 가장 좋은 방법은 무엇입니까? 나는 모든 충고를 할 것이다. 미리 감사드립니다.android의 배열에 블랙리스트 문자열

참고 : 배열은 이름 문자열로 구성되어 있으며 앱을 설치하거나 변경하기 전까지는 영구 저장됩니다.

편집 : 명확하지 않은 것에 대해 사과드립니다. 내가 어떻게해야하는지 일반적으로 알고 있지만 설정 메뉴에서 설정을 저장하면 블랙리스트에있는 종족이 닫히고 다시 열리게됩니다. 앱을 닫은 후에도 다시 열면 설정이 동일하게 유지되고 싶습니다. 그렇게되면 다음에 게임을하고 (몇 주 후), 취향에 변화가 없다고 가정하면 블랙리스트에 다시 클릭하지 않고 이동할 수 있습니다.

+0

사용자가 블랙리스트에 올릴 내용을 선택하도록 하시겠습니까? 아니면 선택한 항목이 블랙리스트에 있는지 검색하기위한 메커니즘이 필요합니까? – Alex

+0

사용자가 블랙리스트에 올 것을 선택하고 있습니다. – MyStackFlowethOver

답변

1

데이터 유지가 필요합니다. 두 가지 솔루션을 사용할 수 있습니다 : 1) 아무런 노력없이 키 - 값 쌍을 저장하기위한 SharedPreferences 프레임 워크. 목록을 저장하는 방법을 보려면 여기를 참조하십시오. 2) SQL 데이터베이스를 사용하여 목록을 저장하는 방법을 확인하십시오. Store a List or Set in SharedPreferences

2) SQL 데이터베이스를 사용하십시오. (사용자 지정 솔루션)

경우 1에서 블랙리스트 된 문자열을 유지하고 2의 경우 모든 문자열로 테이블을 만들고 블랙리스트에 있는지 여부에 대한 부울을 갖는 것이 가장 좋습니다.

데이터베이스에 익숙하지 않으면 5 분이 소요될 수 있으므로 공유 환경 설정을 권장합니다. 데이터베이스 솔루션을 사용하면 시간이 오래 걸립니다.

3

코드가 없으면 어떻게 나머지 부분을 구현하는지 잘 모르기 때문에이 문제를 해결하는 방법을 분명히 말하기는 어렵습니다.

내가 생각할 수있는 한 가지 방법은 각 인종과 정수를 연결하는 것입니다. 상수를 사용하여 :

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

다음 임의의 정수를 생성하여 각 레이스를 임의로 선택할 수 있습니다. 임의의 정수 생성을위한 메소드를 만든 경우, 제외 될 특정 숫자를 전달할 수 있습니다. 생성 된 정수가 제외 된 숫자 중 하나 인 동안 계속 임의의 정수를 생성 할 수 있습니다.

예. I에 유래에 약간의 새로운 해요

// 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; 
} 

(안드로이드 이래로 나는 자바로 코딩 할 수 있습니다) 그래서이 도움이된다면 알려주세요.

+0

이것은 내 기본적인 생각 이었지만 블랙리스트 레이스를 저장하여 지속적인 경험을 할 수있는 설정 메뉴를 어떻게 만들 수 있습니까? 앱이 닫힌 경우에도 다시 열면 설정이 동일하게 유지되고 싶습니다. 그렇게되면 다음에 게임을하고 (몇 주 후), 취향에 변화가 없다고 가정하면 블랙리스트에 다시 클릭하지 않고 이동할 수 있습니다. 명확하지 않은 것에 대해 사과드립니다. – MyStackFlowethOver

+0

모든 사용자가 공유하고 편집 할 수있는 데이터를 저장하려면 온라인 저장 장치 나 데이터베이스를 사용해야합니다. 각 사용자별로 저장되는 데이터를 저장하려면 프로젝트 내에 로컬로 저장할 수 있습니다.이렇게하려면 개별 사용자의 문자열을 추적하기 위해 텍스트 파일에 쓰기와 같은 간단한 작업을 수행 할 수 있어야합니다. –