2015-04-22 65 views
0

我使用类对象在列表视图中添加了具有事件名称,开始和时间的生命事件,但仍未成功;我有很多搜索,但无法找到相关答案。我是一个初学者希望大家帮我谢谢通过类对象动态地在列表中插入项目

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

    }); 
+0

你有什么错准确..添加Logcat并缩小你的问题。 – Dhina

回答

1

我看不出哪里/你是如何传递一个备份的ListViewArrayAdapter数据。当您将数据传递给适配器时,则需要获取该数据的引用,添加新项目并在ArrayAdapter上调用notifyDataSetChanged()

+0

adapter = new ArrayAdapter (getActivity(),R.layout.list_item, R.id.meeting_name); listView.setAdapter(adapter); –

+0

'List '被传入了哪里? – Emmanuel

+0

先生,我在列表中的单个项目中有3个视图,所以我很困惑如何通过适配器在他们的特定视图中传递数据。 –

0

每当您更改到ArrayList,请致电notifydatasetchanged,它会照顾你

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); 
     adapter.notifyDataSetChanged(); 
     addMeeting.dismiss(); 
    } 

}); 

的情况下,这是不行的,显示的logcat

+0

我不认为他将'List'全部传递给'Adapter' ... – Emmanuel

+0

你是对的。我甚至不知道会议阵列是什么。您可以通过在第三个参数上添加列表来将列表传递给适配器; adapter = new ArrayAdapter (getActivity(),R.layout.list_item, meetingList); – Genevieve

相关问题