简体   繁体   English

如何从getter setter类获取数据?

[英]How to get data from getter setter class?

I am beginner in android development , I have some issue please help me. 我是android开发的初学者,遇到一些问题,请帮帮我。 I have 2 screen Login and After Login , I have set User id in login class and i want to use that user_id in after login how to get , when I use get method find Null how to resolve this problem. 我有2屏幕登录和登录后,我已经在登录类中设置了用户ID,我想在登录后如何使用该user_id来获取,当我使用get方法find Null时如何解决此问题。
here is my Login Code`public class LoginActivity extends FragmentActivity { 这是我的登录代码的公共类LoginActivity扩展FragmentActivity {

private EditText userName;
private EditText password;
private TextView forgotPassword;
private TextView backToHome;
private Button login;
private CallbackManager callbackManager;
private ReferanceWapper referanceWapper;
private LoginBean loginBean;
Context context;
String regid;
GoogleCloudMessaging gcm;
String SENDER_ID = "918285686540";

public static final String PROPERTY_REG_ID = "registration_id";
private static final String PROPERTY_APP_VERSION = "appVersion";
private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
static final String TAG = "GCM";


@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_login);
    Utility.setStatusBarColor(this, R.color.tranparentColor);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/OpenSans_Regular.ttf");
    setupUI(findViewById(R.id.parentEdit));

    userName = (EditText) findViewById(R.id.userName);
    userName.setTypeface(tf);
    userName.setFocusable(false);
    userName.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View view, MotionEvent paramMotionEvent) {
            userName.setFocusableInTouchMode(true);
            Utility.hideSoftKeyboard(LoginActivity.this);
            return false;
        }
    });


    password = (EditText) findViewById(R.id.passwordEText);
    password.setTypeface(tf);
    password.setFocusable(false);
    password.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View paramView, MotionEvent paramMotionEvent) {
            password.setFocusableInTouchMode(true);
            Utility.hideSoftKeyboard(LoginActivity.this);
            return false;
        }
    });


    forgotPassword = (TextView) findViewById(R.id.forgotPassword);
    forgotPassword.setTypeface(tf);
    forgotPassword.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getApplicationContext(),ForgotPasswordActivity.class);
            startActivity(intent);
        }
    });

    backToHome = (TextView) findViewById(R.id.fromLogToHome);
    backToHome.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();
        }
    });
    login = (Button) findViewById(R.id.loginBtn);

    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            doLoginTask();
            //  Intent intent = new Intent(getApplicationContext(), AfterLoginActivity.class);
            //  startActivity(intent);

        }
    });
}


private void doLoginTask() {

    String strEmail = userName.getText().toString();
    String strPassword = password.getText().toString();
    if (strEmail.length() == 0) {
        userName.setError("Email Not Valid");
    } else if (!Utility.isEmailValid(strEmail.trim())) {
        userName.setError("Email Not Valid");
    } else if (strPassword.length() == 0) {
        password.setError(getString(R.string.password_empty));
    } else {

        JSONObject jsonObject = null;
        try {
            jsonObject = new JSONObject();
            jsonObject.putOpt(Constants.USER_NAME, strEmail);
            jsonObject.putOpt(Constants.USER_PASSWORD, strPassword);
            jsonObject.putOpt(Constants.DEVICE_TOKEN, "11");
            jsonObject.putOpt(Constants.MAC_ADDRESS, "111");
            jsonObject.putOpt(Constants.GPS_LATITUDE, "1111");
            jsonObject.putOpt(Constants.GPS_LONGITUDE, "11111");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        final ProgressDialog pDialog = new ProgressDialog(this);
        pDialog.setMessage("Loading...");
        pDialog.show();

        CustomJSONObjectRequest jsonObjectRequest = new CustomJSONObjectRequest(Request.Method.POST, Constants.USER_LOGIN_URL, jsonObject, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                pDialog.dismiss();
                Log.e("LoginPage", "OnResponse =" + response.toString());
                getLogin(response);
                //LoginBean lb = new LoginBean();
                //Toast.makeText(getApplicationContext(),lb.getFull_name()+"Login Successfuly",Toast.LENGTH_LONG).show();
                Intent intent = new Intent(getApplicationContext(),AfterLoginActivity.class);
                startActivity(intent);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(),"Something, wrong please try again",Toast.LENGTH_LONG).show();
                pDialog.dismiss();

            }
        });
        jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
                5000,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        Log.e("LoginPage", "Url= " + Constants.USER_LOGIN_URL + " PostObject = " + jsonObject.toString());
        AppController.getInstance().addToRequestQueue(jsonObjectRequest);
    }

}

public void getLogin(JSONObject response) {
    LoginBean loginBean = new LoginBean();
    if (response != null){
        try {
            JSONObject jsonObject = response.getJSONObject("data");
            loginBean.setUser_id(jsonObject.getString("user_id"));
            loginBean.setFull_name(jsonObject.getString("full_name"));
            loginBean.setDisplay_name(jsonObject.getString("display_name"));
            loginBean.setUser_image(jsonObject.getString("user_image"));
            loginBean.setGender(jsonObject.getString("gender"));
            loginBean.setAuthorization_key(jsonObject.getString("authorization_key"));

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    Toast.makeText(getApplicationContext(),"User id is "+loginBean.getUser_id(),Toast.LENGTH_LONG).show();
}
public void onBackPressed() {
    finish();
}

public void setupUI(View view) {

    //Set up touch listener for non-text box views to hide keyboard.
    if (!(view instanceof EditText)) {

        view.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                Utility.hideSoftKeyboard(LoginActivity.this);
                return false;
            }

        });
    }


}

} ` }`

here is my AfterLogin class`public class AfterLoginActivity extends FragmentActivity { 这是我的AfterLogin类的公共类AfterLoginActivity扩展了FragmentActivity {

private ImageView partyIcon;
private ImageView dealIcon;
private ImageView deliveryIcon;
private TextView  txtParty;
private TextView  txtDeals;
private TextView  txtDelivery;
boolean doubleBackToExitPressedOnce = false;
int backButtonCount = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_after_login);
    Utility.setStatusBarColor(this, R.color.splash_status_color);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    partyIcon = (ImageView)findViewById(R.id.party_Icon);
    dealIcon = (ImageView)findViewById(R.id.deals_Icon);
    deliveryIcon = (ImageView)findViewById(R.id.delivery_Icon);

    partyIcon.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getApplication(), BookPartyActivity.class);
            startActivity(intent);

        }
    });
    dealIcon.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getApplication(), DealsActivity.class);
            startActivity(intent);

        }
    });
    deliveryIcon.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            LoginBean loginBean = new LoginBean();
            Toast.makeText(getBaseContext(),"Auth"+loginBean.getUser_id(),Toast.LENGTH_LONG).show();
            Intent intent = new Intent(getApplicationContext(),MyAuction.class);
            startActivity(intent);
        }
    });

}
/*
public void onBackPressed()
{


    if (doubleBackToExitPressedOnce)
    {
        Intent intent = new Intent(getApplicationContext(), MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();
    }
    doubleBackToExitPressedOnce = true;
    Toast.makeText(this, "you have logged in ,plz enjoy the party", Toast.LENGTH_LONG).show();
    new Handler().postDelayed(new Runnable()
    {
        public void run()
        {
           doubleBackToExitPressedOnce = false;
        }
    }
            , 2000L);
}*/
@Override
public void onBackPressed()
{

    if(backButtonCount >= 1)
    {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
    else
    {
        Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show();
        backButtonCount++;
    }
}

}` }`

here is LoginBean`public class LoginBean { private String user_id; 这是LoginBean的公共类LoginBean {private String user_id; private String full_name; 私人字串full_name; private String display_name; 私有字符串display_name; private String user_image; 私有字符串user_image; private String gender; 私人String性别; private String authorization_key; 私有字符串授权密钥;

public void setUser_id(String user_id) {
    this.user_id = user_id;
}
public String getUser_id() {
    return user_id;
}


public void setFull_name(String full_name) {
    this.full_name = full_name;
}
public String getFull_name() {
    return full_name;
}


public void setDisplay_name(String display_name) {
    this.display_name = display_name;
}
public String getDisplay_name() {
    return display_name;
}


public void setUser_image(String user_image) {
    this.user_image = user_image;
}
public String getUser_image() {
    return user_image;
}


public void setGender(String gender) {
    this.gender = gender;
}
public String getGender() {
    return gender;
}


public void setAuthorization_key(String authorization_key) {
    this.authorization_key = authorization_key;
}
public String getAuthorization_key() {
    return authorization_key;
}

}` }`

//in your both activity or create class 

    private SharedPreferences mSharedPreferences;


//in your login on getLogin() method ;

    mSharedPreferences = getSharedPreferences("user_preference",Context.MODE_PRIVATE);
        //save actual drawable id in this way.

       if(mSharedPreferences==null)
            return;

        SharedPreferences.Editor editor = mSharedPreferences.edit();
        editor.putInt("userId", loginBean.getUser_id());
        editor.commit();


// in your after login acvtivity on deliverable method

    private SharedPreferences mSharedPreferences;

mSharedPreferences = getSharedPreferences("user_preference",Context.MODE_PRIVATE);
if(mSharedPreferences==null)
            return;
string userId = mSharedPreferences.getString("userId", "");

You can write and apply below mentioned steps (Please ignore any syntactical error, I am giving you simple logical steps). 您可以编写并应用以下提到的步骤(请忽略任何语法错误,我为您提供了简单的逻辑步骤)。

step 1 - Make a global application level loginObject setter and getter like below. 步骤1-如下创建全局应用程序级别的loginObject setter和getter。 Make sure to define Application class in your manifest just like you do it for your LoginActivity 确保在清单中定义Application类,就像为LoginActivity进行操作一样

public class ApplicationClass extends Application{ 公共类ApplicationClass扩展了Application {

private LoginBean loginObject;



public void setLoginBean(LoginBean object) {

    this.loginObject = object;
}

public LoginBean getName() {

   return this.loginObject

}

} }

Step - 2 Get an instance of ApplicationClass object reference in LoginActivity to set this global loginObject 步骤-2在LoginActivity中获取ApplicationClass对象引用的实例以设置此全局loginObject

eg setLogin object in your current Loginactivity like this 例如,您当前的LoginActivity中的setLogin对象是这样的

...... ......

private ApplicationClass appObject; 私有ApplicationClass appObject;

...... ......

@Override protected void onCreate(Bundle savedInstanceState) { @Override受保护的void onCreate(Bundle savedInstanceState){

......

appObject = (ApplicationClass) LoginActivity.this.getApplication();

.......

appObject.setLoginBean(loginObject)

} }

Step - 3 Get an instance of ApplicationClass object reference in any other Activity get this global loginObject where you need to access this login data. 步骤-3在任何其他Activity中获取ApplicationClass对象引用的实例,并在需要访问此登录数据的位置获取此全局loginObject。

eg getLogin object in your otherActivity like this 例如在您的otherActivity中的getLogin对象是这样的

...... ......

private ApplicationClass appObject; 私有ApplicationClass appObject;

...... ......

@Override protected void onCreate(Bundle savedInstanceState) { @Override受保护的void onCreate(Bundle savedInstanceState){

......

appObject = (ApplicationClass) LoginActivity.this.getApplication();

.......

LoginBean loginObject = appObject.getLoginBean();

} }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM