我正在尝试在同一页面上创建登录和注册选项卡。 因此,每次我在登录屏幕上按注册时,它都会按预期更改为注册屏幕,注册屏幕也是如此。在注册屏幕上,每次我按下登录选项卡时,它也可以工作。但是在登录屏幕上,每次我按登录时,它都会进入注册屏幕,但我希望它留在登录屏幕上。奇怪的是,每次我按注册时,它都会停留在注册屏幕上。谁能帮忙?任何帮助将不胜感激。
安卓类
注册屏幕.java
final Intent i = new Intent(SignUpScreen.this, LoginScreen.class);
TextView b = (TextView) findViewById(R.id.text1);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
setContentView(R.layout.login_screen);
SignUpScreen.this.startActivity(i);
}
});
我的登录屏幕.java
final Intent i = new Intent(LoginScreen.this,SignUpScreen.class);
TextView c = (TextView) findViewById(R.id.text4);
c.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
setContentView(R.layout.sign_up_screen);
LoginScreen.this.startActivity(i);
}
});
您只需要创建两个活动,一个用于登录,另一个用于注册,在登录活动中,您必须提供登录表单和两个按钮,一个用于登录,一个用于注册。 并将登录活动设置为启动器活动。单击"注册"按钮后,只需使用 Intent 调用注册活动
公共类登录活动扩展活动 {
private EditText mEmail;
private EditText mPassword;
Button btn_login,btn_signup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
uid = mEmailView.getText().toString();
pwd = mPasswordView.getText().toString();
if(uid.equalsIgnoreCase("")){
mEmailView.setError("Please enter user id");
}else if(pwd.equalsIgnoreCase("")){
mPasswordView.setError("Please enter password");
}else {
//do whaterver you want to do after login
}
}
});
btn_signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i=new Intent(LoginActivity.this,Signup.class);
startActivity(i);
}
});
}
}
并在注册页面中,当您注册时,用户使用 Intent 成功将他重定向到登录页面
Intent i=new Intent(Signup.this,LoginActivity.class(; 启动活动(i(;
或者您可以将他重定向到其他活动
尝试上面的代码进行SignUpScreen.java
TextView b = (TextView) findViewById(R.id.text1);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(SignUpScreen.this, LoginScreen.class);
startActivity(i);
}
});
和登录屏幕.java
TextView c = (TextView) findViewById(R.id.text4);
c.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(LoginScreen.this,SignUpScreen.class);
startActivity(i);
}
});
您必须在onCreate方法中调用setContentView并执行以下操作:
protected void onCreate(Bundle savedInstanceState){
if(forLoginScreen) {
setContentView(R.layout.login_screen);
}else {
setContentView(R.layout.sign_up_screen);
}
}
在setOnClickListener
里面,你为什么要给setContentView(R.layout.login_screen);
实际上,仅在onCreate
中,setContentView
应该存在。
更好的完整代码将有助于指导。