У меня есть 3 абсолютно одинаковых фрагмента, только разница строковой переменной в каждом, даже если у них один и тот же файл макета и один и тот же метод onCreateView
, я создал суперкласс со всеми открытыми методами, но все еще переменная дочернего класса не используетсяперешел в свой супер класс.Это дает нулевую ошибку ссылки на объект.
public class QuizFragment extends Fragment {
private String posType = "xyz";
@Nullable
@Override
public View onCreateView( @NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState ) {
View view = inflater.inflate(R.layout.fragment_adapter, container, false);
initContentView("createdDate");
postCounterWatcher = new PostManager.PostCounterWatcher() {
@Override
public void onPostCounterChanged( int newValue ) {
updateNewPostCounter();
}
};
return view;
}
private void initContentView( String sortBy ) {
newPostsCounterTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick( View v ) {
refreshPostList(posType);
}
});
postsAdapter = new PostsAdapter((MainActivity) getActivity(), swipeContainer, posType, sortBy);
postsAdapter.setCallback(new PostsAdapter.Callback() {
@Override
public void onItemClick( final Post post, final View view ) {
PostManager.getInstance(getActivity()).isPostExistSingleValue(post.getId(), new OnObjectExistListener<Post>() {
@Override
public void onDataChanged( boolean exist ) {
if (exist) {
openPostDetailsActivity(post, view);
} else {
showFloatButtonRelatedSnackBar(R.string.error_post_was_removed);
}
}
}, posType);
}
@Override
public void onListLoadingFinished() {
progressBar.setVisibility(View.GONE);
}
@Override
public void onAuthorClick( String authorId, View view ) {
openProfileActivity(authorId, view);
}
@Override
public void onCanceled( String message ) {
progressBar.setVisibility(View.GONE);
Toast.makeText(getActivity(), message, Toast.LENGTH_LONG).show();
}
});
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
((SimpleItemAnimator) recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
recyclerView.setAdapter(postsAdapter);
postsAdapter.loadFirstPage(posType);
updateNewPostCounter();
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled( RecyclerView recyclerView, int dx, int dy ) {
hideCounterView();
super.onScrolled(recyclerView, dx, dy);
}
});
}
}
Здесь просто posType является переменной, которая варьируется в других фрагментах.