0

//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();

0 Answers0