2017-12-18 223 views
1

我的移動應用程序有2個用戶帳戶類型是管理員和用戶。如果我希望用戶和管理員在登錄後顯示不同的佈局,我該怎麼辦?這是我的登錄活動。有人可以幫助我嗎?我是初學者。謝謝。或者任何人有任何指導初學者做這些的鏈接也可以在這裏發佈。非常感謝大家。如果我想讓用戶和管理員在登錄後顯示不同的佈局,我該怎麼辦?

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    connectionClass = new ConnectionClass(); 
    edtuserid = (EditText) findViewById(R.id.edtuserid); 
    edtpass = (EditText) findViewById(R.id.edtpass); 
    btnlogin = (Button) findViewById(R.id.btnlogin); 
    pbbar = (ProgressBar) findViewById(R.id.pbbar); 
    pbbar.setVisibility(View.GONE); 

    shp = this.getSharedPreferences("UserInfo", MODE_PRIVATE); 

    String userid = shp.getString("UserId", "none"); 

    if (userid.equals("none") || userid.trim().equals("")) { 

    } else { 

     Intent i = new Intent(LoginActivity.this, MainActivity.class); 
     startActivity(i); 
     finish(); 

    } 


    btnlogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      DoLogin doLogin = new DoLogin(); 
      doLogin.execute(""); 
     } 
    }); 

} 

public class DoLogin extends AsyncTask<String,String,String> 
{ 
    String z = ""; 
    Boolean isSuccess = false; 
    String userid = edtuserid.getText().toString(); 
    String password = edtpass.getText().toString(); 

    @Override 
    protected void onPreExecute() { 
     pbbar.setVisibility(View.VISIBLE); 
    } 

    @Override 
    protected void onPostExecute(String r) { 
     pbbar.setVisibility(View.GONE); 
     Toast.makeText(LoginActivity.this,r,Toast.LENGTH_SHORT).show(); 
     if(isSuccess) { 
      Intent i = new Intent(LoginActivity.this, MainActivity.class); 
      startActivity(i); 
      finish(); 
     } 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     if(userid.trim().equals("")|| password.trim().equals("")) 
      z = "Please enter User Id and Password"; 
     else 
     { 
      try { 
       Connection con = connectionClass.CONN(); 
       if (con == null) { 
        z = "Error in connection with SQL server"; 
       } else { 
        String query = "select * from dbo.demo where UserId='" + userid + "' and Password='" + password + "'"; 
        Statement stmt = con.createStatement(); 
        ResultSet rs = stmt.executeQuery(query); 

        if(rs.next()) 
        { 

         z = "Login successfull"; 
         isSuccess=true; 
        } 
        else 
        { 
         z = "Invalid Credentials"; 
         isSuccess = false; 
        } 

       } 
      } 
      catch (Exception ex) 
      { 
       isSuccess = false; 
       z = "Exceptions"; 
      } 
     } 
     return z; 
    } 
} 

回答

0

我曾經做過這種項目。爲了克服這個登錄問題,我們在我們的數據庫中添加了一個作爲「角色」,它包含作爲管理員,用戶等的角色。爲管理員和用戶創建2個不同頁面。檢查登錄憑證後,檢查角色也會相應地重定向。

+0

謝謝。我創建了我可以知道在登錄憑據後添加什麼代碼 –

+0

在'if(rs.next())'寫了類似於if(rs.getString(「role」)。equals(「admin」)){重定向到管理頁面} else {重定向到用戶頁面}'。 –

+0

if(rs.getString(「AccountType」)。equals(「Seller」)){Intent i = new Intent(LoginActivity.this,MainActivity.class); startActivity(i);如果(rs.getString(「AccountType」)。equals(「Supervisor」)){ } Intent i = new Intent(LoginActivity.this,supervisor.class); startActivity(ⅰ); } 我這樣放這樣仍然不能這是因爲帳戶類型沒有從數據庫中檢索? –

相關問題