Как получить текущий идентификатор пользователя по фрагментам, после того как вы вошли в систему - PullRequest
0 голосов
/ 11 сентября 2018

userLogin.class

try {
     JSONObject obj = new JSONObject(response);
     if(!obj.getBoolean("error")){
     SharedPrefManager.getInstance(getApplicationContext())
                                        .userLogin(
                                                obj.getInt("id"),
                                                obj.getString("firstname"),
                                                obj.getString("lastname"),
                                                obj.getString("s_id")
                                        );

     startActivity(new Intent(getApplicationContext(), MainActivity.class));

finish ();

       }else{

       }
   } catch (JSONException e) {
           e.printStackTrace();
           Toast.makeText(getApplicationContext(),"ERROR",Toast.LENGTH_LONG).show();
     }

Это код при попытке входа в систему.Как поместить текущий s_id в другое действие, например «FragmentActivity».Так и должно быть.после того, как вы вошли в систему, он перейдет на FragmentActivity, а также должен получить текущего пользователя, который s_id.Я уже положил код

Intent intentMainActivity = new Intent(LoginActivity.this, MainActivity.class);
                                intentMainActivity.putExtra("s_id", username);
                                startActivity(intentMainActivity);

Но я не знаю, как войти в FragmentActivity, я пытался

final String userID = getActivity().getIntent().getStringExtra("s_id");

Я положил ниже private void fetchNewsFeedData() {, но все же этоне работаетПожалуйста, помогите мне решить эту проблему.спасибо.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

В своем проекте вы уже использовали SharedPreferences API для хранения данных путем создания класса SharedPrefManager.В этом случае вам больше не нужно передавать данные с помощью Bundle.

Когда пользователь вошел в приложение, вы можете получить username как s_id ключ в классе SharedPrefManager из любых действий илифрагменты путем извлечения ключа из префикса.

Если вы звоните с действия

String username = SharedPrefManager.getInstance(this).getUsername();

Если вы звоните с фрагмента

String username = SharedPrefManager.getInstance(getActivity()).getUsername();
0 голосов
/ 11 сентября 2018

В процессе входа в систему перед переходом на главную страницу сохраните ID пользователя в общий преф

SharedPreferences prefs = this.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);

//set value to pref
preferences.edit().putString("s_id", username.toString()).apply();

и получите данные, когда захотите

SharedPreferences preferences = this.getActivity().getSharedPreferences("MyPrefs", MODE_PRIVATE);
String id = preferences.getString("s_id", "default value");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...