簡體   English   中英

Java新手錯誤Android編程sendMessage方法

[英]Java novice error Android Programming sendMessage method

所以我用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 /計算機,但沒有任何效果。

您在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個問題:

  1. 你是不是調用該函數,只是定義它,太內部onClick方法,你應該不do.This問題可以通過調用里面的方法去解決onClick和定義外面onClickListener
  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
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM