Java 如何将用户Id传递给android中的每个活动?
我正在尝试构建一个android应用程序。登录到应用程序后,我想使用用户Id进行所有活动,以便根据该用户Id获取唯一的数据。这是怎么可能的?为了在所有活动中获得用户id,我想在这段代码中做些什么更改 LoginActivity.javaJava 如何将用户Id传递给android中的每个活动?,java,php,android,mysql,Java,Php,Android,Mysql,我正在尝试构建一个android应用程序。登录到应用程序后,我想使用用户Id进行所有活动,以便根据该用户Id获取唯一的数据。这是怎么可能的?为了在所有活动中获得用户id,我想在这段代码中做些什么更改 LoginActivity.java public class LoginActivityMerchant extends AppCompatActivity implements View.OnClickListener { //Defining views private Aut
public class LoginActivityMerchant extends AppCompatActivity implements View.OnClickListener {
//Defining views
private AutoCompleteTextView ACTUser;
private EditText etPassword;
private Button buttonLogin;
private TextView linkToRegister;
private ProgressDialog loading;
public static final String KEY_firstName = "First_Name";
public static final String KEY_LastName = "Last_Name";
public static final String KEY_Mob = "Mobile";
public static final String KEY_ShopName = "Shop_Name";
public static final String KEY_Location = "Location";
public static final String KEY_Radius = "UserId";
public static final String JSON_ARRAY = "result";
public static final String KEY_UserName = "User_Name";
public static final String KEY_Password = "Password";
public TextView test;
//boolean variable to check user is logged in or not
//initially it is false
private boolean loggedIn = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_activity_merchant);
//Initializing views
ACTUser = (AutoCompleteTextView) findViewById(R.id.email);
etPassword = (EditText) findViewById(R.id.password);
buttonLogin = (Button) findViewById(R.id.email_sign_in_button);
linkToRegister = (TextView) findViewById(R.id.Reg_TextView);
test=(TextView)findViewById(R.id.test);
//Adding click listener
buttonLogin.setOnClickListener(this);
linkToRegister.setOnClickListener(this);
}
@Override
protected void onResume() {
super.onResume();
//In onresume fetching value from sharedpreference
SharedPreferences sharedPreferences = getSharedPreferences(config.SHARED_PREF_NAME, Context.MODE_PRIVATE);
//Fetching the boolean value form sharedpreferences
loggedIn = sharedPreferences.getBoolean(config.LOGGEDIN_SHARED_PREF, false);
//If we will get true
if(loggedIn){
//We will start the Profile Activity
//Config.KEY_USERNAME=Config.USERNAME_SHARED_PREF;
SharedPreferences sharedPreferences1 = getSharedPreferences(config.SHARED_PREF_NAME, Context.MODE_PRIVATE);
String username = sharedPreferences1.getString(config.SHARED_PREF_NAME,"Not Available");
setInfos(username);
Intent intent = new Intent(LoginActivityMerchant.this, MainActivity.class);
startActivity(intent);
}
}
private void login(){
//Getting values from edit texts
final String user = ACTUser.getText().toString().trim();
final String password = etPassword.getText().toString().trim();
if(user.isEmpty()||password.isEmpty())
{
Toast.makeText(LoginActivityMerchant.this, "Please fill all the fields", Toast.LENGTH_LONG).show();
}
//Creating a string request
else{
StringRequest stringRequest = new StringRequest(Request.Method.POST, config.LOGIN_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//test.setText(response);
//If we are getting success from server
if(response.contains("success")){
//Creating a shared preference
// Toast.makeText(LoginActivityMerchant.this, "Success", Toast.LENGTH_LONG).show();
SharedPreferences sharedPreferences = LoginActivityMerchant.this.getSharedPreferences(config.SHARED_PREF_NAME, Context.MODE_PRIVATE);
//Creating editor to store values to shared preferences
SharedPreferences.Editor editor = sharedPreferences.edit();
//Adding values to editor
editor.putBoolean(config.LOGGEDIN_SHARED_PREF, true);
editor.putString(config.SHARED_PREF_NAME, user);
config.KEY_USERNAME = user;
//Saving values to editor
editor.commit();
//Starting profile activity
//Intent intent = new Intent(LoginActivity.this, ProfileActivity.class);
setInfos(user);
Intent intent = new Intent(LoginActivityMerchant.this, MainActivity.class);
startActivity(intent);
}else{
//If the server response is not success
//Displaying an error message on toast
Toast.makeText(LoginActivityMerchant.this, "Invalid username or password", Toast.LENGTH_LONG).show();
ACTUser.setText(user);
etPassword.setText(password);
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//You can handle error here if you want
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
//Adding parameters to request
params.put(KEY_UserName, user);
params.put(KEY_Password, password);
//test.setText(password);
//returning parameter
return params;
}
};
//Adding the string request to the queue
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}}
@Override
public void onClick(View v) {
//Calling the login function
if(v==buttonLogin){
login();
}
if(v==linkToRegister){
Intent intent = new Intent(LoginActivityMerchant.this, Registration.class);
startActivity(intent);
}
}
public void setInfos(String username){
String url = config.LOGIN_URL+username;
loading = ProgressDialog.show(this, " Please wait...", "Fetching...", false, false);
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(LoginActivityMerchant.this, error.getMessage().toString(), Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void showJSON(String response) {
String FirstName="";
String LastName="";
String UserName="";
String Mobile="";
String Location="";
String Radius="";
// String stringid="";
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(JSON_ARRAY);
JSONObject userData = result.getJSONObject(0);
FirstName = userData.getString(KEY_firstName);
UserName = userData.getString(KEY_UserName);
LastName = userData.getString(KEY_LastName);
Mobile = userData.getString(KEY_Mob);
Location = userData.getString(KEY_Location);
//stringid=userData.getString(KEY_USERID);
} catch (JSONException e) {
e.printStackTrace();
}
config.KEY_NAME=FirstName + " "+LastName;
config.KEY_USERNAME=UserName;
}
}
公共类LoginActivityMerchant扩展AppCompativeActivity实现View.OnClickListener{
//定义视图
私有自动完成文本视图ACTUser;
私人编辑文本和密码;
私人按钮按钮;
私有文本视图链接注册器;
私有对话框加载;
公共静态最终字符串KEY\u firstName=“First\u Name”;
公共静态最终字符串键\u LastName=“Last\u Name”;
公共静态最终字符串键\u Mob=“Mobile”;
公共静态最终字符串KEY\u ShopName=“Shop\u Name”;
公共静态最终字符串KEY\u Location=“Location”;
公共静态最终字符串键\u Radius=“UserId”;
公共静态最终字符串JSON_ARRAY=“result”;
公共静态最终字符串键\u UserName=“User\u Name”;
公共静态最终字符串密钥\u Password=“Password”;
公共文本视图测试;
//用于检查用户是否登录的布尔变量
//起初这是错误的
私有布尔loggedIn=false;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u login\u activity\u merchant);
//初始化视图
ACTUser=(AutoCompleteTextView)findviewbyd(R.id.email);
etPassword=(EditText)findViewById(R.id.password);
buttonLogin=(按钮)findViewById(R.id.email\u sign\u in\u按钮);
linkToRegister=(TextView)findViewById(R.id.Reg\u TextView);
test=(TextView)findViewById(R.id.test);
//添加单击侦听器
buttonLogin.setOnClickListener(此);
setOnClickListener(这个);
}
@凌驾
受保护的void onResume(){
super.onResume();
//在onresume中从SharedReference获取值
SharedReferences SharedReferences=GetSharedReferences(config.SHARED\u PREF\u NAME,Context.MODE\u PRIVATE);
//从SharedReferences获取布尔值
loggedIn=SharedReferences.getBoolean(config.loggedIn\u SHARED\u PREF,false);
//如果我们能实现
if(loggedIn){
//我们将启动配置文件活动
//Config.KEY\u USERNAME=Config.USERNAME\u SHARED\u PREF;
SharedReferences SharedReferences 1=GetSharedReferences(config.SHARED\u PREF\u NAME,Context.MODE\u PRIVATE);
String username=SharedReferences1.getString(config.SHARED_PREF_NAME,“不可用”);
setInfos(用户名);
意向意向=新意向(LoginActivityMerchant.this,MainActivity.class);
星触觉(意向);
}
}
私有void登录(){
//从编辑文本中获取值
最终字符串user=ACTUser.getText().toString().trim();
最终字符串密码=etPassword.getText().toString().trim();
if(user.isEmpty()| | password.isEmpty())
{
Toast.makeText(LoginActivityMerchant.this,“请填写所有字段”,Toast.LENGTH\u LONG.show();
}
//创建字符串请求
否则{
StringRequest StringRequest=新建StringRequest(Request.Method.POST,config.LOGIN\u URL,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
//test.setText(响应);
//如果我们从服务器获得成功
if(response.contains(“success”)){
//创建共享首选项
//Toast.makeText(LoginActivityMerchant.this,“Success”,Toast.LENGTH_LONG.show();
SharedReferences SharedReferences=LoginActivityMerchant.this.getSharedReferences(config.SHARED\u PREF\u NAME,Context.MODE\u PRIVATE);
//创建编辑器以将值存储到共享首选项
SharedReferences.Editor=SharedReferences.edit();
//向编辑器添加值
putBoolean(config.LOGGEDIN\u SHARED\u PREF,true);
putString(config.SHARED\u PREF\u NAME,user);
config.KEY_USERNAME=用户;
//将值保存到编辑器
commit();
//启动配置文件活动
//意向意向=新意向(LoginActivity.this、ProfileActivity.class);
setInfos(用户);
意向意向=新意向(LoginActivityMerchant.this,MainActivity.class);
星触觉(意向);
}否则{
//如果服务器响应不成功
//在toast上显示错误消息
Toast.makeText(LoginActivityMerchant.this,“无效用户名或密码”,Toast.LENGTH_LONG.show();
ACTUser.setText(用户);
etPassword.setText(密码);
}
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
//如果需要,可以在此处处理错误
}
}){
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
//向请求添加参数
参数put(KEY_用户名、用户);
参数put(钥匙密码、密码);
//test.setText(密码);
//返回参数
返回参数;
}
};
//将字符串请求添加到队列
RequestQueue RequestQueue=Volley.newRequestQueue(this);
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
//Getting values
$username = $_POST['User_Name'];
$password = $_POST['Password'];
//Creating sql query
$sql = "SELECT * FROM User_Profile WHERE User_Name='$username' AND Password='$password'";
//importing dbConnect.php script
require_once('include/dbConnect.php');
//executing query
$result = mysqli_query($con,$sql);
//fetching result
$check = mysqli_fetch_array($result);
//if we got some result
if(isset($check)){
//displaying success
echo "success";
}else{
//displaying failure
echo "failure";
}
mysqli_close($con);
}
else
{echo "error";}
public class SaveId {
static final String ID = "ID";
static SharedPreferences getSharedPreferences(Context ctx) {
return PreferenceManager.getDefaultSharedPreferences(ctx);
}
public static void setId(Context ctx, int value) {
SharedPreferences.Editor editor = getSharedPreferences(ctx).edit();
editor.putInt(ID, value);
editor.commit();
}
public static String getId(Context ctx) {
return getSharedPreferences(ctx).getString(ID, "");
}
}
public class MyApplication extends Application {
private Integer id;
public void setId(int id) {
this.id = id;
}
public Integer getId() {
return id;
}
}
((MyApplication) getApplication()).getId();