Почему я получаю ошибку NullPointerException для setHasFixedSize (true)? Я не могу понять это: Мой код:
public class SearchFragment extends Fragment {
private RecyclerView recyclerView;
private UserAdapter userAdapter;
private List<User> mUsers;
EditText search_bar;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view= inflater.inflate(R.layout.fragment_search, container, false);
recyclerView=view.findViewById(R.id.recycler_view);
//Below line
recyclerView.setHasFixedSize(true);///////////////////////////AT THIS LINE I AM GETTNG ERROR.WHY?
//Upper line
recyclerView.setLayoutManager(new LinearLayoutManager((getContext())));
search_bar=view.findViewById(R.id.search_bar);
mUsers= new ArrayList<>();
userAdapter = new UserAdapter(getContext(), mUsers);
recyclerView.setAdapter(userAdapter);
readUsers();
search_bar.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
searchUsers(charSequence.toString().toLowerCase());
}
@Override
public void afterTextChanged(Editable editable) {
}
});
return view;
}
private void searchUsers(String s){
Query query = FirebaseDatabase.getInstance().getReference("Users").orderByChild("username")
.startAt(s)
.endAt(s+"\uf8ff");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mUsers.clear();
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
User user = snapshot.getValue(User.class);
mUsers.add(user);
}
userAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void readUsers(){
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(search_bar.getText().toString().equals("")){
mUsers.clear();
for(DataSnapshot snapshot: dataSnapshot.getChildren()){
User user = snapshot.getValue(User.class);
mUsers.add(user);
}
userAdapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
В этом фрагменте кода я пытаюсь понять, почему существует исключение NullPointerException, хотя я использовал метод findViewById для recyclerView переменная? Я сделал этот фрагмент для поиска других подписчиков и пользователей клона Instagram для приложения Instagram .... Но сейчас не могу найти, почему я получаю эту ошибку? AVD показывает это как фатальную ошибку NullPointerException в строке, показанной в коде. Пожалуйста, помогите мне понять, что является проблемой в этой строке метода setHasFixedSize (true) ??