登录和注册选项卡不起作用 XML



我正在尝试在同一页面上创建登录和注册选项卡。 因此,每次我在登录屏幕上按注册时,它都会按预期更改为注册屏幕,注册屏幕也是如此。在注册屏幕上,每次我按下登录选项卡时,它也可以工作。但是在登录屏幕上,每次我按登录时,它都会进入注册屏幕,但我希望它留在登录屏幕上。奇怪的是,每次我按注册时,它都会停留在注册屏幕上。谁能帮忙?任何帮助将不胜感激。

安卓类

注册屏幕.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应该存在。

更好的完整代码将有助于指导。

最新更新