в активити есть TabLayout с ViewPager'ом, в который адаптер должен загружать 2 страницы xml
user_favs.java
userFavsAdapter favsAdapter=new userFavsAdapter(this,getSupportFragmentManager());
user_favs_viewpager.setAdapter(favsAdapter);
user_favs_tablayout.setupWithViewPager(user_favs_viewpager);
userFavsAdapter.java extends FragmentPagerAdapter
@Override
public Fragment getItem(int position) {
if (position == 0)
return new user_fav_stores();
else
return new user_fav_items();
}
В SharedPreferences уже сохранена некоторая инфа. Ее нужно получить из фрагментов
user_fav_stores.java extends Fragment
String user_id="";
String user_stores="";
public user_fav_stores(){
SharedPreferences logininfo=getContext().getSharedPreferences(Values.APP_LOGIN_INFO,MODE_PRIVATE);
/* или другие варианты */
SharedPreferences logininfo=this.getActivity().getSharedPreferences(Values.APP_LOGIN_INFO,MODE_PRIVATE);
SharedPreferences logininfo=getContext().getSharedPreferences(Values.APP_LOGIN_INFO,MODE_PRIVATE);
SharedPreferences logininfo=getContext().getApplicationContext().getSharedPreferences(Values.APP_LOGIN_INFO,MODE_PRIVATE);
/* */
if(logininfo!=null){
if(logininfo.getString("auth_type","").equals("user")) {
user_id=logininfo.getString("userid","");
user_stores=logininfo.getString("stores","");
}
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root= inflater.inflate(R.layout.user_fav_stores, container, false);
lv=(ListView)root.findViewById(R.id.user_fav_stores);
(new getUserStores()).execute();
return root;
}
user_fav_items.java аналогично
Все варианты получить SharedPreferences дают
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.support.v4.app.FragmentActivity.getSharedPreferences(java.lang.String, int)' on a null object reference
как же их получить?
Java
надо camelCase
-ом, иначе ваш код становится нечитаемым. Имена классов должны быть с большой буквы.getActivity()
. Но только после того, как фрагмент будет добавлен в активити. Это произойдёт только после вызова onAttach(Context context)
метода фрагмента (вызов будет сделан системой после выполнения асинхронной операции добавления фрагмента)Т.е. вы можете перенести код из конструктора фрагмента в метод onCreateView
и тогда всё должно заработать.
И обязательно надо переименовать все классы и переменные чтобы код стал читаемым для джавистов.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется две вкладки, реализованные через TabLayout, ViewPager и FragmentПри отображении первой вкладки показывается кнопка FloatingActionButton
Можно ли данные из одной коллекции Set использовать в разных активити?
Запускается приложение вроде как на всем версиях андройда до API 15, как собственно и указал в манифестеНо вот есть одна проблема, когда нажимаю...
почему доступ к объектам в стэке быстрее чем к объектам вне стэка ?