0

在 Eclipse for android 中编码时出现此错误:

令牌“;”上的语法错误,预期

此行有多个标记

- Syntax error on token ")", { expected after this token
- Return type for the method is missing
- Syntax error on token ".", ... expected
- Syntax error, insert ";" to complete FieldDeclaration

而且我真的不明白为什么我很难弄清楚它是什么。Eclipse 只说哪里有错误,而不是为什么,而且它的“快速修复”永远不会起作用。请问有谁知道如何解决这个问题?

 package com.example.apptest;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
  private final String defaut = "Vous devez cliquer sur le bouton « Calculer l'IMC » pour obtenir un résultat.";
  private final String megaString = "Vous faites un poids parfait ! Wahou ! Trop fort ! On dirait Brad Pitt (si vous êtes un homme)/Angelina Jolie (si vous êtes une femme)/Willy (si vous êtes un orque) !";

  Button envoyer = null;
  Button raz = null;
  EditText poids = null;
  EditText taille = null;

  RadioGroup group = null;

  TextView result = null;

  CheckBox mega = null; /*Error here with the semicolon, eclipse wants a ','*/



    envoyer= (Button) findViewById(R.id.calcul); /*Long error here*/

    raz = (Button) findViewById(R.id.raz);

    taille = (EditText)findViewById(R.id.taille);
    poids = (EditText)findViewById(R.id.poids);

    mega = (CheckBox)findViewById(R.id.mega);

    group = (RadioGroup)findViewById(R.id.group);

    result = (TextView)findViewById(R.id.result);

    // On attribue un listener adapté aux vues qui en ont besoin
    envoyer.setOnClickListener(envoyerListener);
    raz.setOnClickListener(razListener);
    taille.addTextChangedListener(textWatcher);
    poids.addTextChangedListener(textWatcher);

    // Solution avec des onKey
    //taille.setOnKeyListener(modificationListener);
    //poids.setOnKeyListener(modificationListener);
    mega.setOnClickListener(checkedListener);
 }



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}
4

4 回答 4

2

}你的代码中间有一个额外的东西onCreate,所以你onCreateOptionsMenu实际上不在你的MainActivity班级里

 // your other code
   mega.setOnClickListener(checkedListener);
} //<---- End of MainActivity class

    @Override
    protected void onCreate(Bundle savedInstanceState) {
     ...
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    ...
    }

}// <--- should be actual end?
于 2013-07-22T20:22:41.510 回答
1

下面的代码在类中浮动,没有适当的方法来保存它。只需将代码放在 onCreate 或任何其他方法中,您得到的错误就会得到解决。

envoyer= (Button) findViewById(R.id.calcul); /*Long error here*/

raz = (Button) findViewById(R.id.raz);

taille = (EditText)findViewById(R.id.taille);
poids = (EditText)findViewById(R.id.poids);

mega = (CheckBox)findViewById(R.id.mega);

group = (RadioGroup)findViewById(R.id.group);

result = (TextView)findViewById(R.id.result);

// On attribue un listener adapté aux vues qui en ont besoin
envoyer.setOnClickListener(envoyerListener);
raz.setOnClickListener(razListener);
taille.addTextChangedListener(textWatcher);
poids.addTextChangedListener(textWatcher);

// Solution avec des onKey
//taille.setOnKeyListener(modificationListener);
//poids.setOnKeyListener(modificationListener);
mega.setOnClickListener(checkedListener);
于 2014-04-16T12:04:07.997 回答
0

你少了点什么。

  CheckBox mega = null;

     /***** Something missing here, don't you think? *******/
     // (hint: maybe an onResume() method declaration)

    envoyer= (Button) findViewById(R.id.calcul);

如果您仍然无法弄清楚,请发表评论。

于 2013-07-23T03:19:43.837 回答
0

如果不在 android 活动中设置内容视图,则无法调用 findViewById。所以你的代码应该是

 package com.example.apptest;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
  private final String defaut = "Vous devez cliquer sur le bouton « Calculer l'IMC » pour obtenir un résultat.";
  private final String megaString = "Vous faites un poids parfait ! Wahou ! Trop fort ! On dirait Brad Pitt (si vous êtes un homme)/Angelina Jolie (si vous êtes une femme)/Willy (si vous êtes un orque) !";

  Button envoyer = null;
  Button raz = null;
  EditText poids = null;
  EditText taille = null;

  RadioGroup group = null;

  TextView result = null;

  CheckBox mega = null; /*Error here with the semicolon, eclipse wants a ','*/

//move your code from here


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

 // paste your moved code here
envoyer= (Button) findViewById(R.id.calcul); /*Long error here*/

    raz = (Button) findViewById(R.id.raz);

    taille = (EditText)findViewById(R.id.taille);
    poids = (EditText)findViewById(R.id.poids);

    mega = (CheckBox)findViewById(R.id.mega);

    group = (RadioGroup)findViewById(R.id.group);

    result = (TextView)findViewById(R.id.result);

    // On attribue un listener adapté aux vues qui en ont besoin
    envoyer.setOnClickListener(envoyerListener);
    raz.setOnClickListener(razListener);
    taille.addTextChangedListener(textWatcher);
    poids.addTextChangedListener(textWatcher);

    // Solution avec des onKey
    //taille.setOnKeyListener(modificationListener);
    //poids.setOnKeyListener(modificationListener);
    mega.setOnClickListener(checkedListener);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}
于 2013-07-23T05:50:17.457 回答