多级登录用户和管理员?

问题描述 投票:0回答:2

我有一个项目在android工作室制作登录应用程序,并有问题..我有代码,这个代码只是基本登录(没有级别,像管理员/用户)..我想让它有多级登录。点击登录后,每个级别的用户都有不同的活动..(管理员点击登录按钮后,转到管理员活动和用户,然后转到用户活动)。你有解决方案来帮助我吗?抱歉,如果我的英语不好,谢谢

这是我的代码:

package com.zahran.login;

import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.zahran.login.Server;
import com.zahran.login.app.AppController;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class Login extends AppCompatActivity {

ProgressDialog pDialog;
Button btn_register, btn_login;
EditText txt_username, txt_password;
Intent intent;

int success;
ConnectivityManager conMgr;

private String url = Server.URL + "login.php";

private static final String TAG = Login.class.getSimpleName();

private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";

public final static String TAG_USERNAME = "username";
public final static String TAG_ID = "id";

String tag_json_obj = "json_obj_req";

SharedPreferences sharedpreferences;
Boolean session = false;
String id, username;
public static final String my_shared_preferences = "my_shared_preferences";
public static final String session_status = "session_status";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    {
        if (conMgr.getActiveNetworkInfo() != null
                && conMgr.getActiveNetworkInfo().isAvailable()
                && conMgr.getActiveNetworkInfo().isConnected()) {
        } else {
            Toast.makeText(getApplicationContext(), "No Internet Connection",
                    Toast.LENGTH_LONG).show();
        }
    }

    btn_login = (Button) findViewById(R.id.btn_login);
    btn_register = (Button) findViewById(R.id.btn_register);
    txt_username = (EditText) findViewById(R.id.txt_username);
    txt_password = (EditText) findViewById(R.id.txt_password);

    // Cek session login jika TRUE maka langsung buka MainActivity
    sharedpreferences = getSharedPreferences(my_shared_preferences, Context.MODE_PRIVATE);
    session = sharedpreferences.getBoolean(session_status, false);
    id = sharedpreferences.getString(TAG_ID, null);
    username = sharedpreferences.getString(TAG_USERNAME, null);

    if (session) {
        Intent intent = new Intent(Login.this, MainActivity.class);
        intent.putExtra(TAG_ID, id);
        intent.putExtra(TAG_USERNAME, username);
        finish();
        startActivity(intent);
    }


    btn_login.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String username = txt_username.getText().toString();
            String password = txt_password.getText().toString();

            // mengecek kolom yang kosong
            if (username.trim().length() > 0 && password.trim().length() > 0) {
                if (conMgr.getActiveNetworkInfo() != null
                        && conMgr.getActiveNetworkInfo().isAvailable()
                        && conMgr.getActiveNetworkInfo().isConnected()) {
                    checkLogin(username, password);
                } else {
                    Toast.makeText(getApplicationContext() ,"No Internet Connection", Toast.LENGTH_LONG).show();
                }
            } else {
                // Prompt user to enter credentials
                Toast.makeText(getApplicationContext() ,"Kolom tidak boleh kosong", Toast.LENGTH_LONG).show();
            }
        }
    });

    btn_register.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            intent = new Intent(Login.this, Register.class);
            finish();
            startActivity(intent);
        }
    });

}

private void checkLogin(final String username, final String password) {
    pDialog = new ProgressDialog(this);
    pDialog.setCancelable(false);
    pDialog.setMessage("Logging in ...");
    showDialog();

    StringRequest strReq = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {
            Log.e(TAG, "Login Response: " + response.toString());
            hideDialog();

            try {
                JSONObject jObj = new JSONObject(response);
                success = jObj.getInt(TAG_SUCCESS);

                // Check for error node in json
                if (success == 1) {
                    String username = jObj.getString(TAG_USERNAME);
                    String id = jObj.getString(TAG_ID);

                    Log.e("Successfully Login!", jObj.toString());

                    Toast.makeText(getApplicationContext(), jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();

                    // menyimpan login ke session
                    SharedPreferences.Editor editor = sharedpreferences.edit();
                    editor.putBoolean(session_status, true);
                    editor.putString(TAG_ID, id);
                    editor.putString(TAG_USERNAME, username);
                    editor.commit();

                    // Memanggil main activity
                    Intent intent = new Intent(Login.this, MainActivity.class);
                    intent.putExtra(TAG_ID, id);
                    intent.putExtra(TAG_USERNAME, username);
                    finish();
                    startActivity(intent);
                } else {
                    Toast.makeText(getApplicationContext(),
                            jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();

                }
            } catch (JSONException e) {
                // JSON error
                e.printStackTrace();
            }

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Login Error: " + error.getMessage());
            Toast.makeText(getApplicationContext(),
                    error.getMessage(), Toast.LENGTH_LONG).show();

            hideDialog();

        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            // Posting parameters to login url
            Map<String, String> params = new HashMap<String, String>();
            params.put("username", username);
            params.put("password", password);

            return params;
        }

    };

    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(strReq, tag_json_obj);
}

private void showDialog() {
    if (!pDialog.isShowing())
        pDialog.show();
}

private void hideDialog() {
    if (pDialog.isShowing())
        pDialog.dismiss();
}
}
java android login
2个回答
1
投票

你只能通过回应来实现同样的目的。 通过给出示例执行代码:

   [
  {
    "code": 1,
    "msg": "valid user",
    "user_type": "admin",
    "userData": [
      {
        "id": 6,
        "name": "Abhishek kumar",
        "email": "[email protected]",
        "created_at": "2017-09-13 16:54:38",
        "updated_at": "2018-01-25 07:11:56",
        "site_id": 2,
        "dc_id": 2,
        "store_id": 8,
      }
    ]
  }
]

代码将是这样的:

     if (user_type.equals("admin")){
        // go to Admin Activity
     }else{
      // go to user Activity
     }

最终守则将是这样的:

 // Check for error node in json
            if (success == 1) {
                String username = jObj.getString(TAG_USERNAME);
                String user_type= jObj.getString(TAG_USERTYPE);
                String id = jObj.getString(TAG_ID);

                Log.e("Successfully Login!", jObj.toString());

                Toast.makeText(getApplicationContext(), jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();

                // menyimpan login ke session
                SharedPreferences.Editor editor = sharedpreferences.edit();
                editor.putBoolean(session_status, true);
                editor.putString(TAG_ID, id);
                editor.putString(TAG_USERNAME, username);
                editor.commit();

                // Memanggil main activity
                if(user_type.equals("admin")){
                Intent intent = new Intent(Login.this, AdminActivity.class);
                intent.putExtra(TAG_ID, id);
                intent.putExtra(TAG_USERNAME, username);
                finish();
                startActivity(intent);
                }
                else{
                Intent intent = new Intent(Login.this, MainActivity.class);
                intent.putExtra(TAG_ID, id);
                intent.putExtra(TAG_USERNAME, username);
                finish();
                startActivity(intent);
               }
            } else {
                Toast.makeText(getApplicationContext(),
                        jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();

            }

0
投票

你必须做这样的事情。为此,使您的Web服务返回usertype作为响应(管理员或用户)。在你身边,你可以做到这一点

            try {
                    JSONObject jObj = new JSONObject(response);
                    success = jObj.getInt(TAG_SUCCESS);

                    // Check for error node in json
                    if (success == 1) {
                        String username = jObj.getString(TAG_USERNAME);
                        String id = jObj.getString(TAG_ID);
                        String User_type = jObj.getString("user_type"); //you need this parameter to dealt with your requirement


             if (user_type.equals("Admin"))
            // go to adminactivity
            else
              go to useractivity. 
© www.soinside.com 2019 - 2024. All rights reserved.