2013-12-08 11 views
1

친구에게 첫 번째 Android 앱을 코딩하려고하는데 기본 기능은 버튼을 클릭 할 때 세 문자 중 하나에서 임의의 따옴표를 표시하는 것입니다. (가난한 용어로 유감스럽게 생각합니다.)Android - 변수로 해결할 수 없습니다.

내가 겪고있는 문제는 임의로 생성 된 다른 번호와 if/else로 해당 배열에 액세스 한 후 배열에서 무작위로 선택된 견적을 반환하는 문제입니다.

내가 사용하는 내가 주 활동에서 액세스 바라고 하나 개의 패키지이 패키지는 것을

String quote = mDoctorWho.getDoctorQuote;

내 경우/다른 경우 여기에 문 :

private Nine mNine = new Nine(); 
private Ten mTen = new Ten(); 
private Eleven mEleven = new Eleven(); 

public String getDoctorQuote() { 

    // Choose a Random number out of three values 
    Random randomGenerator = new Random(); 
    int randomNumber = randomGenerator.nextInt(3); 

    // Use that value to choose which of the Doctors to get a quote from 
    if (randomNumber == 0) { 
     // Quote from Nine 
     String quote = mNine.getQuote(); 
    } 
    else if (randomNumber == 1) { 
     // Quote from Ten 
     String quote = mTen.getQuote(); 
    } 
    else if (randomNumber == 2) { 
     // Quote from Eleven 
     String quote = mEleven.getQuote(); 
    } 
    else { 
     String quote = "Error"; 
    } 
    return quote; 
} 

위의 마지막 줄은 따옴표를 반환하기 위해 'quote가 변수로 해석 될 수 없습니다'라는 오류가 발생합니다.

mNine, mTen 및 mEleven는 다음과 같이 약 보이는 모든 거의-동일한 패키지입니다 : 그들은 공간을 차지하지 것이다 그래야

public String[] mElevenQuotes = { 
     "Quote here", 
     "Quote here", 
     "Quote here" }; 

public String getQuote() { 

    String quote = ""; 

    Random randomGenerator = new Random(); 
    int randomNumber = randomGenerator.nextInt(mElevenQuotes.length); 

    quote = mElevenQuotes[randomNumber]; 

    return quote; 
} 

(나는 인용 부호를 제거 - 나는 여부를 확신하지 못했습니다 이 코드 패키지는 유용 할 수도 있고 유용하지 않을 수도 있습니다.)

해결책을 찾았으며 범위에 문제가있는 것을 시도했지만 수정 사항을 찾지 못했습니다. 어떻게하면 무작위로 문자를 선택한 다음 그 문자에서 무작위로 인용 한 후 주 활동으로 견적을 되돌릴 수 있습니까?

답변

2

블록 내에서 quote을 바꿀 수 있다고 선언하고 있습니다. 그래서 블록 바깥에는 존재하지 않습니다. 이 같은 것을하십시오

public String getDoctorQuote() { 

    String quote = ""; // declare the variable before 
    Random randomGenerator = new Random(); 
    int randomNumber = randomGenerator.nextInt(3); 

    // Use that value to choose which of the Doctors to get a quote from 
    if (randomNumber == 0) { 
     // Quote from Nine 
     quote = mNine.getQuote(); 
    } 
    else if (randomNumber == 1) { 
     // Quote from Ten 
     quote = mTen.getQuote(); 
    } 
    else if (randomNumber == 2) { 
     // Quote from Eleven 
     quote = mEleven.getQuote(); 
    } 
    else { 
     quote = "Error"; 
    } 
    return quote; 
} 
관련 문제