2017-05-14 20 views
0

私はリスト内の何かをクリックすると、意図的に新しいクラスに移動するクイズプログラムを作成しました。Androidスタジオエラーでシンボル「余分なメッセージ」が解決されない

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); 

ので、私はこの

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

のように見えるがEXTRA_MESSAGEは赤、と言って、シンボルを解決できません、EXTRA_MESSAGE

が誰か缶次のクラス、coolquizactivity、でエラーが発生していますこれを修正する方法の写真を投稿しますか? ありがとう

(btw、これには既に質問がありましたが、回答がありましたが、それを修正する方法がわかりませんでした。画像を求めることができませんでした。評判と私もコメントすることはできません!)

+1

これは 'public static 'でなければなりません.... – Opiatefuchs

+0

上記の質問 –

+0

kで、QuizSelectionActivityとCoolQuizActivityのコードを追加してください:D – Daniel

答えて

0

あなたは

QuizSelectionActivity.EXTRA_MESSAGE 
のようなオブジェクトを作成しなくても、他のクラスから、この文字列変数にアクセスできる「パブリック静的」キーワードで

public static final String EXTRA_MESSAGE="mystring"; 

としてEXTRA_MESSAGEを宣言する必要があります

0

こんにちはダニエルはコードと理由でコメントしています。 EXTRA_MESSAGEQuizSelectionActivityで宣言されており、CoolQuizActivityにはアクセスできないため、赤色です。したがって、これを解決する1つの方法は、変数EXTRA_MESSAGEがアプリケーション全体にアクセスできるようにすることを意味するpublic staticにすることです。だから、コードでは、これはそれが

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

をどのように見えるかであるとQuizSelectionActivityにキーを宣言しながら、この パブリッククラスCoolQuizActivityがfinalの活動{

@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 
    } 
} 

ノートの使用を拡張するように、他のクラスCoolQuizActivityはそれを消費することになりますその定数が変更できないことを意味します。 あなたのお役に立てば幸いです。

関連する問題