2017-12-18 127 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(ⅰ); } 我这样放这样仍然不能这是因为帐户类型没有从数据库中检索? –

相关问题