【问题标题】:Java novice error Android Programming sendMessage methodJava新手错误Android编程sendMessage方法
【发布时间】:2014-12-30 06:32:43
【问题描述】:

所以我开始使用 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/计算机,但没有任何效果。

【问题讨论】:

    标签: java android eclipse


    【解决方案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);
                        }
    

    【讨论】:

      【解决方案2】:

      您的代码中有 2 个问题:

      1. 你不是在调用函数,只是在onClick方法内部定义它,你不应该这样做。这个问题可以通过在onClick内部调用方法并在@987654323外部定义它来解决@。
      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; 
                      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
      } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-03
        • 1970-01-01
        • 2014-01-04
        • 2013-07-07
        • 1970-01-01
        • 1970-01-01
        • 2016-04-13
        • 2015-12-22
        相关资源
        最近更新 更多