there is an error while adding an adapter. there is a nullpointerException. i don't know why this happens. this code is making a custom listview. I make three classes for it.
this is mainActivity
public class ScheduleActivity extends AppCompatActivity {
// Changes
ListView listView;
ScheduleAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_schedule);
listView =(ListView)findViewById(R.id.schedule_list);
ArrayList<Integer> weeks=new ArrayList<>();
weeks.add(0);
weeks.add(1);
adapter.addItem(11,0,12,0,weeks);
listView.setAdapter(adapter);
//image button
ImageButton Block = findViewById(R.id.Block);
Block.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivityForResult(intent, 101);
overridePendingTransition(0, 0);
}
});
ImageButton Friends = findViewById(R.id.Friends);
Block.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), FriendActivity.class);
startActivityForResult(intent, 101);
overridePendingTransition(0, 0);
}
});
ImageButton Graph = findViewById(R.id.Graph);
Graph.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), GraphActivity.class);
startActivityForResult(intent, 101);
overridePendingTransition(0, 0);
}
});
//text for button
TextView txtGraph = findViewById(R.id.textGraph);
txtGraph.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), GraphActivity.class);
startActivityForResult(intent, 101);
overridePendingTransition(0, 0);
}
});
TextView txtOption = findViewById(R.id.textFriends);
txtOption.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), FriendActivity.class);
startActivityForResult(intent, 101);
overridePendingTransition(0, 0);
}
});
TextView txtBlock = findViewById(R.id.textBlock);
txtBlock.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivityForResult(intent, 101);
overridePendingTransition(0, 0);
}
});
}
}
this is adapter class
public class ScheduleAdapter extends BaseAdapter {
private ArrayList<ItemViewList> itemViewLists= new ArrayList<ItemViewList>();
@Override
public int getCount() {
return itemViewLists.size();
}
@Override
public Object getItem(int position) {
return itemViewLists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Context context =parent.getContext();
if(convertView==null){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflater.inflate(R.layout.schedule_context,parent,false);
}
TextView startTime=convertView.findViewById(R.id.startTime);
TextView endTime=convertView.findViewById(R.id.EndTime);
TextView monday=convertView.findViewById(R.id.Monday);
TextView tuesday=convertView.findViewById(R.id.Tuesday);
TextView wednesday=convertView.findViewById(R.id.Wendsday);
TextView thursday=convertView.findViewById(R.id.Thursday);
TextView friday=convertView.findViewById(R.id.Friday);
TextView saturday=convertView.findViewById(R.id.Saturday);
TextView sunday=convertView.findViewById(R.id.Sunday);
ItemViewList Item=itemViewLists.get(position);
Log.i("db",Item.getStartThour()+":"+Item.getStartTminute()+"~"+Item.getEndThour()+":"+Item.getEndTminute()+"/");
startTime.setText(Item.getStartThour()+":"+Item.getStartTminute());
endTime.setText(Item.getEndThour()+":"+Item.getEndTminute());
ArrayList<Integer> weeks=Item.getWeek();
for(int j=0;j<weeks.size();j++){
switch(weeks.get(j)){
case 0:
monday.setText("월");
break;
case 1:
tuesday.setText("화");
break;
case 2:
wednesday.setText("수");
break;
case 3:
thursday.setText("목");
break;
case 4:
friday.setText("금");
break;
case 5:
saturday.setText("토");
break;
case 6:
sunday.setText("일");
break;
}
}
return convertView;
}
public void addItem(int starthour, int startminute,
int Endhour, int Endminute,ArrayList<Integer> week){
ItemViewList item= new ItemViewList();
item.setStartT(starthour,startminute);
item.setEndT(Endhour, Endminute);
item.setWeek(week);
itemViewLists.add(item);
}
}
this is Item getter setter class
package com.gachon.concentration_term;
import java.util.ArrayList;
public class ItemViewList {
private int startThour;
private int startTminute;
private int endThour;
private int endTminute;
private ArrayList<Integer> week;
public void setStartT(int hour, int minute){
startThour=hour;
startTminute=minute;
}
public void setEndT(int hour, int minute){
endThour=hour;
endTminute=minute;
}
public void setWeek(ArrayList<Integer> week1){
week=week1;
}
public int getStartThour() {
return startThour;
}
public int getStartTminute() {
return startTminute;
}
public int getEndThour() {
return endThour;
}
public int getEndTminute() {
return endTminute;
}
public ArrayList<Integer> getWeek() {
return week;
}
}
there is an error in MainActivity in 'adapter.addItem()'. is there a problem in adapter? or gettersetter class?