如何获取使用我的应用程序登录的用户ID?

时间:2015-07-09 05:46:44

标签: java android

如何获取使用我的应用登录的用户ID?

我有两个活动。第一个是登录活动,第二个是注册活动。我也在使用json。如果用户成功注册,那么它会创建一个id.I需要我的登录页面上的id。

先谢谢

Register.java

protected String doInBackground(String... args) {
        // TODO Auto-generated method stub
         int success;
         String firstname = first.getText().toString();
         String lastname = last.getText().toString();
         String emailaddress = emailet.getText().toString();
         String username = user.getText().toString();
         String password= passet.getText().toString();
         try {
              List params = new ArrayList();
              params.add(new BasicNameValuePair("first_name", firstname));
              params.add(new BasicNameValuePair("last_name", lastname));
              params.add(new BasicNameValuePair("user_email", emailaddress));
              params.add(new BasicNameValuePair("user_name", username));
              params.add(new BasicNameValuePair("user_pass", password));

              Log.d("request!", "starting");
              JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST", params);
              Log.d("Login attempt", json.toString());
              success = json.getInt(TAG_SUCCESS);
              if (success == 1) {
                  Log.d("User Created!", json.toString());   
       ;



                  Toast.makeText(getApplicationContext(), json.toString(), Toast.LENGTH_SHORT).show();

                  finish();
                  return json.getString(TAG_MESSAGE);
              }else{
                  Log.d("Login Failure!", json.getString(TAG_MESSAGE));
                  return json.getString(TAG_MESSAGE);

              }


        } catch (Exception e) {
            // TODO: handle exception
             e.printStackTrace();
        }

        return null;
    }

Login.java

protected String doInBackground(String...args) {
        // TODO Auto-generated method stub
        int success;
        String username = user.getText().toString();
        String password = pass.getText().toString();
        try {
            List params = new ArrayList();
            params.add(new BasicNameValuePair("user_email", username));
            params.add(new BasicNameValuePair("user_pass", password) );
            Log.d("request!", "starting");
            JSONObject json = jsonParse.makeHttpRequest(LOGIN_URL, "GET", params);
              Log.d("Login attempt", json.toString());


              success = json.getInt(TAG_SUCCESS);
              if (success == 1) {
                  Log.d("Login Successful!", json.toString());

                  return json.getString(TAG_MESSAGE);
              }else{
                  Log.d("Login Failure!", json.getString(TAG_MESSAGE));
                  return json.getString(TAG_MESSAGE);      
              }
        } catch (Exception e) {
            // TODO: handle exception
        }

        return null;
    }

2 个答案:

答案 0 :(得分:0)

您需要首先将Id存储在数据库中的某个位置,然后在登录时需要使用用户名和密码传递该ID

答案 1 :(得分:0)

将它放在会话管理器中。

public static void saveSession_userid(SharedPreferences prefs,String value) {
    SessionManager.savePreference(prefs, USERID, value);
}

public static String get_session_userid(SharedPreferences prefs) {
    return prefs.getString(USERID, "");
}

这在您的登录Asynctask onPostExecute()

if (login_result.equals("sucess")) {
id = jsonObject.getString("userId");
SessionManager.saveSession_userid(prefs, id);

并声明:

SharedPreferences prefs;
prefs = PreferenceManager.getDefaultSharedPreferences(this);