2013-08-19 90 views
0

我想在我的代码中使用findViewById,但它必须是无效的,什么是错的?我不想要方法clickbutton,但如果我把它拿出来,它说它一定是无效的。有什么办法可以在不改变代码中的所有内容的情况下做到这一点?findViewById必须是无效的,但不能使其无效

import android.os.Bundle; 
import android.app.Activity; 
import android.app.NotificationManager; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.ToggleButton; 

public class LoginWorker extends Activity implements OnClickListener{ 


    Button login; 
    EditText user, pass; 
    ToggleButton repass; 
    TextView invail; 

    private boolean savelogin = false; 

public void clickbutton() { 


     login = (Button) findViewById(R.id.bloginf); 
     user = (EditText) findViewById(R.id.usernametf); 
     pass = (EditText) findViewById(R.id.passwordtf); 
     invail = (TextView) findViewById(R.id.invalidinfo); 
     repass = (ToggleButton) findViewById(R.id.rememberlogintb); 
     login.setOnClickListener(new View.OnClickListener() { 


      @Override 
      public void onClick(View v) { 
       if(user.getText().equals("parents")){ 
        if(pass.getText().equals("!saints")){ 
         if(repass.isChecked()){ 
          savelogin = true; 
          setContentView(R.layout.announcements); 
         } 
        }else if(!repass.isChecked()){ 
      savelogin = false; 
      setContentView(R.layout.announcements); 
     } 
    }if(!user.getText().equals("pie")){ 
     invail.setText("Invalid Username and/or Password!"); 
    }if(!pass.getText().equals("!pie")){ 
     invail.setText("Invalid Username and/or Password!"); 
    } 
} 
}); 
} 
} 

谢谢你的时间!

+1

我建议你按照Android上的初学者教程:[链接](http://www.codeproject.com/Articles/102065/Android-A-beginner-s-guide)。 – Vikram

回答

3

您错过了onCreate函数。 onCreate在活动开始时调用。这是大多数初始化应该去的地方。请在onCreate函数中具有上述所有代码。在继续之前,您应该研究活动lifecycle。即在创建活动时以及以何种顺序调用函数时会发生什么。这将告诉你如何实现你想要的。另外@vikram建议一个教程将帮助你开始。

+0

当我这样做时,我必须将所有变量都改为final,并且仍然表示需要实现未实现的方法。 – ZachtheBoB

+1

未实现的方法将是'onClick(View)'。这是因为'LoginWorker'实现了'View.OnClickListener'接口。实现一个接口需要你的类实现接口中定义的方法。我建议你在遵循Android上的初学者教程之前遵循关于Java的教程。另外,如果你的变量被定义为全局变量,那么'final'关键字就不需要了。 – Vikram

1

哪里是你onCreate,则必须调用它,setContentView(R.layout.***);

0

您需要此代码。尝试观看一些YouTube视频以帮助了解所有这些过程。

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

    //All of your apps code goes here. 
} 
相关问题