Java新手错误Android编程sendMessage方法

时间:2014-12-30 06:32:43

标签: java android eclipse

所以我用Java 7开始了一些Android编程。我有Eclipse Juno(我认为是4.2)。

问题在于它给我一个错误“此行的多个标记      - 令牌上的语法错误“)”,;      预期      - 令牌上的语法错误“)”,;      预期

使用sendMessage方法。这是代码:

public class MainActivity extends ActionBarActivity {


int counter;
Button login; 
EditText username, password;
String success;


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

    username = (EditText)findViewById(R.id.getEmail);
    password = (EditText)findViewById(R.id.getPassword);        

    login.setOnClickListener(new View.OnClickListener() {       
        public void onClick (View v) {
            if(username.getText().toString().equals("admin") && password.getText().toString().equals("admin")){
                success = "Successful";
                counter = 0;
                public void sendMessage (View view){
                    Intent intent = new Intent("com.example.linked1n.SCREENAFTLOG");
                    startActivity(intent);
                };
            } else {
                    counter++;
                    login.setText("Unsuccessful. Try again. " + 3-counter + " tries left.");
            }   
        }   
    });



}

我没有在任何地方找到解决方案,而且我完全按照教程告诉我的那样做了。我尝试清理项目三次并重新启动eclipse / computer没有任何效果。

2 个答案:

答案 0 :(得分:1)

您在onclick中的调用方法是错误的,请尝试以下方法: -

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

    username = (EditText)findViewById(R.id.getEmail);
    password = (EditText)findViewById(R.id.getPassword);        

    login.setOnClickListener(new View.OnClickListener() {       
        public void onClick (View v) {
            if(username.getText().toString().equals("admin") && password.getText().toString().equals("admin")){
                success = "Successful";
                counter = 0;
               sendMessage(v);
            } else {
                    counter++;
                    login.setText("Unsuccessful. Try again. " + 3-counter + " tries left.");
            }   
        }   
    });

 public void sendMessage (View view){
                        Intent intent = new Intent("com.example.linked1n.SCREENAFTLOG");
                        startActivity(intent);
                    }

答案 1 :(得分:0)

您的代码中有2个问题:

  1. 你不是在onClick方法中调用函数,只是定义它,你不应该这样做。这个问题可以通过调用onClick中的方法并定义它来解决。在onClickListener
  2. 之外
  3. 你不应该在结束大括号后用半冒号终止你的sendMessage方法声明。这个问题可以通过从那里删除分号来解决。
  4. 所以你的代码最终如下所示:

    public class MainActivity extends ActionBarActivity { 
    
    
    int counter;
    Button login; 
    EditText username, password;
    String success;
    
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        counter = 0;
    
        username = (EditText)findViewById(R.id.getEmail);
        password = (EditText)findViewById(R.id.getPassword);        
    
        login.setOnClickListener(new View.OnClickListener() {        
            public void onClick (View v) { 
                if(username.getText().toString().equals("admin") && password.getText().toString().equals("admin")){ 
                    success = "Successful"; 
                    counter = 0; 
                    sendMessage(v);//Method sendMesaage is called inside onClick
    
                } else { 
                        counter++; 
                        login.setText("Unsuccessful. Try again. " + 3-counter + " tries left."); 
                }    
            }    
        }); 
         //Definition of method sendMessage
         public void sendMessage (View view){ 
                        Intent intent = new Intent("com.example.linked1n.SCREENAFTLOG"); 
                        startActivity(intent); 
                    }//Removed semicolon from the method sendMessage
    }