2017-07-06 38 views
-3

我正嘗試在同一頁上創建登錄和註冊選項卡。所以每次按登錄屏幕上的註冊時,它都會按照預期更改爲註冊屏幕,註冊屏幕也會如此。在註冊屏幕上,每次按下登錄選項卡時,它都可以工作。但在登錄屏幕上,每次我登錄時,都會進入註冊屏幕,但我希望它保持在登錄屏幕上。奇怪的是,每次我按下注冊時,它都會保留在註冊屏幕上。誰能幫忙?任何幫助,將不勝感激。登錄和註冊選項卡不起作用xml

的Android類

SignUpScreen.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); 
     } 
    }); 

我LoginScreen.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); 
     } 
    }); 
+0

顯示完整的代碼 –

+0

你可以分享你的完整代碼更好的理解? – sumit

+1

這是絕對錯誤的。在初始化活動視圖時,應在'onCreate()'中調用'setContentView()'。你不能在'onClickListener'中調用。更好地嘗試與活動或片段, – tahsinRupam

回答

0

您必須創建兩個活動,一個用於登錄,另一個用於註冊,您必須在登錄活動中提供登錄表單和兩個按鈕一個登錄和一個註冊。 並使登錄活動成爲您的啓動器活動。在點擊註冊按鈕,只需使用意圖

公共類LoginActivity調用註冊活動延伸活動{

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); startActivity(i);

,或者您可以重定向他到其他活動

0

裏面setOnClickListener,你爲什麼只給onCreatesetContentView(R.layout.login_screen); 其實,setContentView應該存在。

更好的完整代碼將有助於指導。

+0

你應該評論這種建議,因爲這不是一個答案,你有足夠的聲譽評論。 – sumit

0

嘗試上面的代碼爲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); 
    } 
}); 

和LoginScreen.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); 
    } 
}); 
0

必須調用的setContentView在onCreate方法和做這樣的事情:

protected void onCreate(Bundle savedInstanceState){ 

    if(forLoginScreen) { 
    setContentView(R.layout.login_screen); 
    }else { 
    setContentView(R.layout.sign_up_screen); 
    } 

}