У меня проблема, моя активность закрывается, пока switching
между вкладками, у меня есть 2 вкладки, и я использую для этого 2 отдельных фрагмента.
Это стек ошибок
06-28 20:32:18.008 10728-10728/com.mycom.myapp W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a null object reference
06-28 20:32:18.009 10728-10728/com.mycom.myapp W/System.err: at android.view.ViewRootImpl.getHostVisibility(ViewRootImpl.java:1786)
at android.view.ViewRootImpl.handleAppVisibility(ViewRootImpl.java:1422)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4804)
at android.os.Handler.dispatchMessage(Handler.java:106)
06-28 20:32:18.009 10728-10728/com.mycom.myapp W/System.err: at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7058)
06-28 20:32:18.009 10728-10728/com.mycom.myapp W/System.err: at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Код активности
public class DummyLsActivity extends AppCompatActivity {
@BindView(R.id.pager)
ViewPager pager;
@BindView(R.id.tablayout)
TabLayout tabLayout;
private static DummyLsActivity dummyLsActivity = null;
LockScreenPagerAdapter myPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dummy_ls);
ButterKnife.bind(this);
tabLayout.addTab(tabLayout.newTab().setText("FirstTab"));
tabLayout.addTab(tabLayout.newTab().setText("SecondTab"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
myPagerAdapter = new LockScreenPagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
pager.setAdapter(myPagerAdapter);
tabLayout.setupWithViewPager(pager);
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
public static DummyLsActivity getInstance() {
return dummyLsActivity;
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
Код первого фрагмента
public class LsFirstFragment extends Fragment {
Unbinder unbinder;
View view;
LsArticlesSharedPreference lsArticlesSharedPreference;
@BindView(R.id.ls_first_iv)
ImageView lsFirstIv;
@BindView(R.id.ls_first_article_head_overlay_tv)
TextView lsFirstArticleHeadOverlayTv;
@BindView(R.id.ls_first_swipe_left_tv)
TextView lsFirstSwipeLeftTv;
public LsFirstFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_ls_first, container, false);
unbinder = ButterKnife.bind(this, view);
lsArticlesSharedPreference = new LsArticlesSharedPreference();
loadOfflineArticlesData();
return view;
}
public void loadOfflineArticlesData() {
if (getContext() != null && lsArticlesSharedPreference != null) {
List<Articles> savedArticles = lsArticlesSharedPreference.getOfflineDataLs(getContext());
RequestOptions requestOptions = new RequestOptions();
if (getActivity() != null && savedArticles != null) {
lsFirstSwipeLeftTv.setVisibility(View.VISIBLE);
lsFirstArticleHeadOverlayTv.setVisibility(View.VISIBLE);
Glide.with(getActivity())
.setDefaultRequestOptions(requestOptions)
.load(savedArticles.get(0).getArticleSecondImage())
.thumbnail(Glide.with(getContext()).load(R.drawable.logo_anim_full))
.into(lsFirstIv);
lsFirstIv.setScaleType(ImageView.ScaleType.FIT_XY);
lsFirstArticleHeadOverlayTv.setText(savedArticles.get(0).getArticleHeading());
}
}
}
@Override
public void onResume() {
super.onResume();
}
}
Код второго фрагмента
открытый класс LsSecondFragment расширяет Fragment реализует ViewPagerListener {
View view;
Unbinder unbinder;
private LsArticlesAdapter lsArticlesAdapter;
LsArticlesSharedPreference lsArticlesSharedPreference;
@BindView(R.id.ls_articles_viewpager)
ViewPager lsArticlesViewpager;
public LsSecondFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_ls_second, container, false);
unbinder = ButterKnife.bind(this, view);
lsArticlesSharedPreference = new LsArticlesSharedPreference();
loadOfflineArticlesData();
return view;
}
@Override
public void setViewPager(int position) {
lsArticlesViewpager.setCurrentItem(position);
}
public void loadOfflineArticlesData() {
if (getContext() != null && lsArticlesSharedPreference != null) {
List<Articles> savedArticles = lsArticlesSharedPreference.getOfflineDataLs(getContext());
if (savedArticles != null && savedArticles.size() == 0) {
loadOfflineArticlesData();
} else {
System.out.println("STORY IS CALLED FIRST");
lsArticlesAdapter = new LsArticlesAdapter(getContext(), savedArticles);
lsArticlesViewpager.setAdapter(lsArticlesAdapter);
lsArticlesAdapter.notifyDataSetChanged();
}
}
}
@Override
public void onResume() {
super.onResume();
}
}
Показывает Attempt to call virtual method
getVisibility () on a
null object reference
, но на самом деле я не использую getVisibility()
в любом месте всего проекта.Может кто-то указать причину того же.