Search code examples
androidandroid-listviewandroid-listfragment

Inserting items in a list dynamically by class object


I am adding life event with Event Name, Start and And Time on List View by using class object and still not succeeded; i have search a lot but can't find relevant answer. i am a beginner hopefully you will help me Thanks

public class MeetingFragment extends Fragment {

    List<Meetings> meetingList; //here Meetings is a Class
    Meetings newMeeting;
    ListView listView;
    String meetingTag;
    String[] meetings;
    ArrayAdapter<Meetings> adapter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View rootView = inflater.inflate(R.layout.fragment_meeting, container,
            false);

    newMeeting = new Meetings();
    listView = (ListView) rootView.findViewById(R.id.list_meetings);

    meetings = new String[] {};
    adapter = new ArrayAdapter<Meetings>(getActivity(), R.layout.list_item,
            R.id.meeting_name);
    listView.setAdapter(adapter);

    });

//This is custom dialog
ok.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            String tagMeeting = et.getText().toString();
            String startTimeStr = strtTime.getText().toString();
            String endTimeStr = endTime.getText().toString();

            newMeeting.setMeetingName(tagMeeting);
            newMeeting.setStartTime(startTimeStr);
            newMeeting.setEndTime(endTimeStr);

            //Display error on below line 
            meetingList.add(newMeeting);  
            addMeeting.dismiss();
        }

    });

Solution

  • I do not see where/how you are passing the data that backs the ListView to the ArrayAdapter. When you do pass the data to the adapter, then you need to get a reference of it, add the new items and call notifyDataSetChanged() on the ArrayAdapter.