I have 3 class and 2 of them have ArrayList. Unfortunately, my object with the 2 ArrayList won't work. I use Java in Android Studio
First class : Panel :
public class Panel {
public String nameUser;
public String street;
public String panelId;
public ArrayList<Block> listBlock;
public Panel(String nameUser, String street, String panelId, ArrayList<Block> listBlock) {
this.nameUser = nameUser;
this.street = street;
this.panelId = panelId;
this.listBlock = listBlock;
}
public String getNameUser() {
return nameUser;
}
public void setNameUser(String nameUser) {
this.nameUser = nameUser;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getPanelId() {
return panelId;
}
public void setPanelId(String panelId) {
this.panelId = panelId;
}
public ArrayList<Block> getListBlock() {
return listBlock;
}
public void setListBlock(ArrayList<Block> listBlock) {
this.listBlock = listBlock;
}
}
Second class : Block :
import java.util.ArrayList;
public class Block {
public String nameLine;
public ArrayList<Breaker> listBreaker;
public String getNameLine() {
return nameLine;
}
public void setNameLine(String nameLine) {
this.nameLine = nameLine;
}
public ArrayList<Breaker> getListBreaker() {
return listBreaker;
}
public void setListBreaker(ArrayList<Breaker> listBreaker) {
this.listBreaker = listBreaker;
}
public Block(String nameLine, ArrayList<Breaker> listBreaker) {
this.nameLine = nameLine;
this.listBreaker = listBreaker;
}
}
Third ( Last class) : Breaker :
public class Breaker {
public String name;
public String utilisation;
public Breaker(String name, String utilisation) {
this.name = name;
this.utilisation = utilisation;
}
public String getNom() {
return name;
}
public void setNom(String nom) {
this.name = name;
}
public String getUtilisation() {
return utilisation;
}
public void setUtilisation(String utilisation) {
this.utilisation = utilisation;
}
}
My MainActivity :
public class Activity_PanelHome extends AppCompatActivity {
private ArrayList<Panel> listPanel;
private ArrayList<Block> listBlock;
private ArrayList<Breaker> listBreaker;
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_panelhome);
recyclerView = findViewById(R.id.recyclerViewHomePage);
ArrayList<Panel> listPanel = new ArrayList<>();
List<Block> listBlock = new ArrayList<>();
List<Breaker> listBreaker = new ArrayList<Breaker>();
setUserInfo();
setAdapter();
}
private void setAdapter() {
RecyclerAdapter adapter = new RecyclerAdapter(listPanel);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(adapter);
}
private void setUserInfo() {
listBreaker.add(new Breaker("BreakerName","BreakerUtilisation"));
listBlock.add(new Block("BlockName",listBreaker));
listPanel.add(new Panel("PanelUserName","PanelStreet","PanelId",listBlock));
}
}
The error I got
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.add(java.lang.Object)' on a null object reference
at com.example.application.Activity.Activity_PanelHome.setUserInfo(Activity_PanelHome.java:48)
at com.example.application.Activity.Activity_PanelHome.onCreate(Activity_PanelHome.java:36)
Ligne 36 : (It's the method)
setUserInfo();
Ligne 48 :
listBreaker.add(new Breaker("BreakerName","BreakerUtilisation"));
Thank you in advance for your help :)