2017-08-28 13 views
0

私はフラグクイズアプリを使用していますが、アプリが円滑に実行されないことが判明しています。私は何度かデバッグしました。現在、私は立ち往生しています。当初、インスタンスヌルを再作成するために、フラグメントヌルはパブリック静的でなければならないという例外がありました。新しいクラスを作成したソリューションのネットを数時間、数回サーフィンすると、このクラスにエラーはありませんが、赤色になります。これはなぜですか?また、このコードを完全に使用するためには何が必要ですか?例えばメーカーがvoidにShowDialog()は以下で使用されていないと言っていることはMainActivityフラグメントプロジェクトでダイアログフラグメントを追加する方法

   guessButton = ((Button) v); 
       String guess = guessButton.getText().toString(); 
       String answer = getCountryName(correctAnswer); 
       ++totalGuesses; 

       if (guess.equals(answer)) { 
        ++correctAnswers; 


        answerTextView.setText(answer + "!"); 
        answerTextView.setTextColor(
          getResources().getColor(R.color.correct_answer)); 

        disableButtons(); 
        if (correctAnswers == FLAGS_IN_QUIZ) { 
         resetQuiz(); 

         void showDialog(){ 
          DialogFragment newFragment = MyNewFragment.newInstance(); 
          newFragment.show(getFragmentManager(), "QUIZ RESULTS"); 
          newFragment.setCancelable(false); 
         } 
         public void doPositiveClick(){ 
         Log.i(" fragmentdialog" , "positive click"); 








        } 
       } 

       else { 

         handler.postDelayed(
           new Runnable() { 
            @Override 
            public void run() { 
             animate(true); 
            } 
           }, 2000); 

        } 
       } else { 
        flagImageView.startAnimation(shakeAnimation); 

        answerTextView.setText((R.string.incorrect_answer)); 
        answerTextView.setTextColor(ContextCompat.getColor(getContext(), 
          R.color.incorrect_answer)); 
        guessButton.setEnabled(false); 
       } 

      } 

      ; 


      private void disableButtons() { 
       for (int row = 0; row < guessRows; row++) { 

        LinearLayout guessRow = guessLinearLayouts[row]; 
        for (int i = 0; i < guessRow.getChildCount(); i++) 
         guessRow.getChildAt(i).setEnabled(false); 
       } 

      } 
     }; 
     } 

以下は赤登場し続け、新しいクラスである私の一部です。

   public class MyNewFragment extends DialogFragment { 
public static MyNewFragment newInstance() { 
    MyNewFragment frag = new MyNewFragment(); 
    Bundle args = new Bundle(); 
    frag.setArguments(args); 
    return frag; 
} 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 


    AlertDialog.Builder builder; 
    builder = new AlertDialog.Builder(getActivity()) 

      .setMessage("fff") 

      .setPositiveButton(R.string.reset_quiz, 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int whichButton) { 




         } 
        } 
      ); 
    return builder.create(); 

    } 
    }; 

私は

+0

問題が見つからない場合は、質問をクリアしてください –

答えて

0

は、あなたが何らかの形でのif-then-elseの節内のメソッドを宣言しているように私には見えるこれらの問題を解決するのに役立ちます正確な答えを感謝します、したがって、Androidのメーカーは、インクルードが使用されていないと言っています。あなたがDialogFragmentを起動しようとすると、コードのスニペットは、(周囲のvoid showDialog() {}メソッド定義なしつまり)より、次のようになります。

if (correctAnswers == FLAGS_IN_QUIZ) { 
      resetQuiz(); 
      DialogFragment newFragment = MyNewFragment.newInstance(); 
      newFragment.show(getFragmentManager(), "QUIZ RESULTS"); 
      newFragment.setCancelable(false); 
    } 
あなたが持っているが、私は、MyNewFragmentのあなたの定義と大幅に間違った何かを見ることができない

空のOnClickListener.OnClick()定義があり、フラグメント引数を空のBundleに設定しています。しかし、これらの問題のどちらもスタジオコンパイラのエラーを生成して赤色にならない。 Studioがエラーを示している場所を探し、コードに何が間違っているかを教えてくれます。

関連する問題