2012-12-18 3 views
0

Je reçois des erreurs de support Je ne peux pas comprendre.erreurs de support Android

le code devrait avoir un nombre aléatoire après un bouton est poussé, alors je devrais avoir un compteur qui compte en dessous de cela. mon objectif à la fin est d'avoir une condition de victoire qui vérifie si les chiffres sont les mêmes et que vous gagnez. Mais juste besoin d'aide pour aligner ces parenthèses. ce faisant dans Eclipse pour android toute aide serait génial merci!

package com.viralgamez.gastime; 

import java.util.Random; 


import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class NewGame<Stopwatch> extends Activity { 

    private TextView displayRandInt; 
    private Button updateRandInt; 
    final int MSG_START_TIMER = 0; 
    final int MSG_STOP_TIMER = 1; 
    final int MSG_UPDATE_TIMER = 2; 

    private static final Random rand = new Random(); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.newgame); 

     /* Setup your Activity */ 

     // Find the views (their id's should be specified in the XML layout file) 
     displayRandInt = (TextView) findViewById(R.id.displayRandInt); 
     updateRandInt = (Button) findViewById(R.id.updateRandInt); 

     // Give the Button an onClickListener 
     updateRandInt.setOnClickListener(new android.view.View.OnClickListener() { 
      public void onClick(View v) { 
       int randInt = rand.nextInt(100)+1; 
       displayRandInt.setText(String.valueOf(randInt)); 
      } 

      public void onClick2(View v) { 
       if(status == false) 
       {  
        btnStart.setText("Stop"); 
        status = true;   
        new Thread(new Runnable() 
        { run(){ 
          for(int i=0; i < 500; i++) 
          { 
           runOnUiThread(new Runnable() 
            { 
             @Override 
             public void run() 
             { 
              txtCounter.setText(String.valueOf(i)); 
             } 
            }); 
           Thread.sleep(1000); 
          }} 
        }).start(); 

       } 
       else if (status == true) 
       { 

        btnStart.setText("Start"); 
        status = false; 
        initCouner(); 
     }); 
+1

Vous ne savez pas quelle est la question; l'utilisation d'indentation cohérente aiderait beaucoup. –

+0

Quelle est l'erreur exacte que vous obtenez? –

+0

marqueurs multiples à cette ligne \t - Erreur de syntaxe, insérer "}" pour terminer ClassBody \t - Erreur de syntaxe, insérer "else" pour terminer \t IfStatement \t - Erreur de syntaxe, insérer "}" pour terminer MethodBody \t - erreur de syntaxe, insérer "}" pour terminer MethodBody – Dexter1088

Répondre

1

j'ai couru à travers votre code http://jsbeautifier.org/ (pour JavaScript, mais il indente Java très bien). Vous pouvez le faire dans Eclipse en utilisant Contrôle + Shift + F. Si vous faites cela chaque fois que vous ajoutez un nouveau bloc de code, votre code sera toujours propre et bien rangé.

De là, il est facile de voir quels crochets correspondent. Tout d'abord, il est important de faire run() dans une signature de méthode réelle. En dehors de cela, vous avez un problème avec le crochet de fin else if.

J'ai translittéré votre code de l'auto-pénétrateur, plus ajouté les crochets manquants en bas. J'ai commenté dans quelques endroits que vous devriez surveiller (la signature de la méthode et les parenthèses manquantes, à savoir).

package com.viralgamez.gastime; 

import java.util.Random; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class NewGame<Stopwatch> extends Activity { 

    private TextView displayRandInt; 
    private Button updateRandInt; 
    final int MSG_START_TIMER = 0; 
    final int MSG_STOP_TIMER = 1; 
    final int MSG_UPDATE_TIMER = 2; 

    private static final Random rand = new Random(); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.newgame); 

     /* Setup your Activity */ 

     // Find the views (their id's should be specified in the XML layout file) 
     displayRandInt = (TextView) findViewById(R.id.displayRandInt); 
     updateRandInt = (Button) findViewById(R.id.updateRandInt); 

     // Give the Button an onClickListener 
     updateRandInt.setOnClickListener(new android.view.View.OnClickListener() { 
      public void onClick(View v) { 
       int randInt = rand.nextInt(100) + 1; 
       displayRandInt.setText(String.valueOf(randInt)); 
      } 

      public void onClick2(View v) { 
       if (status == false) { 
        btnStart.setText("Stop"); 
        status = true; 
        new Thread(new Runnable() { 
         // run() { // This needs to be changed to an actual method signature 
         public void run() { 
          for (int i = 0; i < 500; i++) { 
           runOnUiThread(new Runnable() { 
            @Override 
            public void run() { 
             txtCounter.setText(String.valueOf(i)); 
            } 
           }); 
           Thread.sleep(1000); 
          } 
         } 
        }).start(); 

       // } else if (status == true) { // Change this to just }else{ 
       } else { 

        btnStart.setText("Start"); 
        status = false; 
        initCouner(); 
       // }); // This needs to be changed to the following: 
       } 
      } 
     }); 
    } 
} 
0

Vous semblez manquer le support de la fin de la else if, et un autre support de fermeture pour onClick2 (Sam pris la deuxième devant moi)

+0

je reçois une erreur sur \t 'private static final rand aléatoire = new Random()' et le dernier '});' J'ai essayé de fermer le Sinon, si, mais crée simplement plus d'erreurs stynx – Dexter1088

+0

Que dit l'erreur? Est-ce l'erreur de support? – jonhopkins

+0

@ Dexter1088 est ce que vous avez posté l'intégralité du code?Parce que si c'est le cas, alors le problème est qu'il manque beaucoup de parenthèses fermantes, pas seulement celle pour 'else if' et' onClick2' – jonhopkins

0

Essayez ceci:

updateRandInt.setOnClickListener(new android.view.View.OnClickListener() { 
    public void onClick(View v) { 
    } 

    public void onClick2(View v) { 
     if(status == false) 
     {  
     } 
     else if (status == true) 
     { 
     } // Not Here); 
    } 
}); // Here 

Et il vous manque quelques parenthèses après cela.

+0

qui provoque des erreurs partout. Les parenthèses de lol sont frustrantes quand vous combinez le code des tutoriels. – Dexter1088

+3

Eh bien, il y a votre premier problème ... lire des tutoriels et ensuite écrire votre propre code. – Joel

+0

@ Dexter1088 Je crois que cela résout le problème de support en utilisant le code que vous avez posté. Il y en a probablement plus que vous n'avez pas posté ... et je ne suis pas sûr de ce que vous avez l'intention de faire avec onClick2() ', car je ne vois pas l'appel dans' OnClickListener' et vous aurez beaucoup de problèmes appelant une classe anonyme "spécifique" plus tard. – Sam

0

Comme mentionné précédemment, il vous manque les crochets de fermeture et votre fermeture ); n'est pas à sa place, ce qui a été corrigé ci-dessous. Si vous utilisez eclipse, pour résoudre facilement ce problème dans le futur, ajoutez simplement les crochets de fermeture au bas de la page et cliquez sur à côté d'eux. Eclipse met automatiquement en surbrillance les parenthèses d'ouverture et de fermeture correspondantes. Vous pouvez le faire pour aligner correctement vos parenthèses et vos parenthèses ou pour déterminer si vous avez trop de parenthèses ou si vous devez en ajouter une autre.

  //starting from the last else if statement 
      else if (status == true) 
      { 

       btnStart.setText("Start"); 
       status = false; 
       initCouner(); 
      } 
     } 
    }); 
    } 
}