2017-05-14 37 views
0

我已經做了一個測驗程序,當我點擊列表中的某個東西時,它會轉到一個新類,並帶有一個額外的意圖。Android Studio錯誤無法解析符號'額外消息'

if (quiznumber.equals("Quiz One")){ 
         String message = "Quiz One"; 
         Intent gotosetone = new Intent(QuizSelectionActivity.this, CoolQuizActivity.class); 
         gotosetone.putExtra(EXTRA_MESSAGE, message); 
         startActivity(gotosetone); 
        }else if (quiznumber.equals("Quiz Two")){ 
         String message = "Quiz Two"; 
         Intent gotosettwo = new Intent(QuizSelectionActivity.this, CoolQuizActivity.class); 
         gotosettwo.putExtra(EXTRA_MESSAGE, message); 
         startActivity(gotosettwo); 

所以我在隔壁班,coolquizactivity,它看起來像這樣

Intent gotosetone = getIntent(); 
    String message = gotosetone.getStringExtra(QuizSelectionActivity.EXTRA_MESSAGE); 
    Intent gotosettwo = getIntent(); 
    String message2 = gotosetone.getStringExtra(QuizSelectionActivity.EXTRA_MESSAGE); 

但EXTRA_MESSAGE是紅色的,並說,無法解析符號錯誤,EXTRA_MESSAGE

可有人發佈如何解決這個問題的圖片? 謝謝

(順便說一句,這已經是一個問題,並有一個答案,但我不知道如何解決它,我不能要求一張照片,因爲我有1以信譽求我甚至不能發表評論!)

+1

它必須是'公共靜態'.... – Opiatefuchs

+0

在上面的問題添加更多QuizSelectionActivity和CoolQuizActivity的代碼 –

+0

k,ill編輯它:D – Daniel

回答

0

你應該申報EXTRA_MESSAGE作爲

public static final String EXTRA_MESSAGE="mystring"; 

隨着您可以訪問其他類這個字符串變量,而無需創建像

QuizSelectionActivity.EXTRA_MESSAGE 
對象「的公共靜態」關鍵字
0

嗨丹尼爾詳細說明Opiatefuchs評論的代碼和原因。 EXTRA_MESSAGE是紅色,因爲它在QuizSelectionActivity中聲明,而CoolQuizActivity無權訪問它。所以解決這個問題的方法之一是使其成爲public static,這意味着現在整個應用程序都可以訪問變量EXTRA_MESSAGE。因此,在代碼,這是它會怎樣看

public class QuizSelectionActivity extends Activity { 

    public static final String EXTRA_MESSAGE = "extra_message"; 

    public void someFunction() { 
     Intent intent = new Intent(QuizSelectionActivity.this, CoolQuizActivity.class); 
     String message = ""; // default value 
      if (quiznumber.equals("Quiz One")){ 
        message = "Quiz One"; 
       }else if (quiznumber.equals("Quiz Two")){ 
        message = "Quiz Two"; 
      } 

      intent.putExtra(EXTRA_MESSAGE, message); 
      startActivity(intent); 
    } 
} 

像這樣 公共類CoolQuizActivity延伸活動{

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout); 
     Intent intent = getIntent(); 
     // this is the message passed "Quiz One" or "Quiz Two" 
     String message = intent.getStringExtra(QuizSelectionActivity.EXTRA_MESSAGE); 

      // do action using the message passed 
    } 
} 

注意使用final同時宣佈在QuizSelectionActivity關鍵另一類CoolQuizActivity會消耗它這意味着它的一個常數不能改變。 希望它可以幫助你。

相關問題