//RVAdapter class
public class RVAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
ArrayList<Properties> list = new ArrayList<>();
public RVAdapter(Context ctx) {
this.context = ctx;
}
public void setItems(ArrayList<Properties> prop) {
list.addAll(prop);
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.layout_item,
parent, false);
return new PropertiesVH(view);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
PropertiesVH vh = (PropertiesVH) holder;
Properties prop = list.get(position);
vh.txtname.setText(prop.getName());
vh.txtprop.setText(prop.getPtype());
vh.txtfurn.setText(prop.getFtype());
vh.txtbed.setText(prop.getBtype());
vh.txtrent.setText(prop.getRent());
vh.txtdate.setText(prop.getDate());
vh.txttime.setText(prop.getTime());
vh.txtnotes.setText(prop.getNote());
}
@Override
public int getItemCount() {
return list.size();
}
}
//RVActivity class
public class RVActivity extends AppCompatActivity {
SwipeRefreshLayout swipeRefreshLayout;
RecyclerView recyclerView;
RVAdapter adapter;
DAOProperties dao;
boolean isLoading = false;
String key = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rvactivity);
swipeRefreshLayout = findViewById(R.id.swipe);
recyclerView = findViewById(R.id.rv);
recyclerView.setHasFixedSize(true);
LinearLayoutManager manager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(manager);
RVAdapter adapter = new RVAdapter(this );
recyclerView.setAdapter(adapter);
dao = new DAOProperties();
loadData();
}
private void loadData() {
swipeRefreshLayout.setRefreshing(true);
dao.get(key).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot)
{
ArrayList<Properties> propme = new ArrayList<>();
for (DataSnapshot data : snapshot.getChildren()) {
Properties prop = data.getValue(Properties.class);
propme.add(prop);
key = data.getKey();
}
adapter.setItems(propme);
adapter.notifyDataSetChanged();
}
});
}
}
java.lang.NullPointerException: Attempt to invoke virtual method 'void .RVAdapter.setItems(java.util.ArrayList)' on a null object reference
at adapter.notifyDataSetChanged();