尝试在ListView中显示日历的事件

时间:2017-02-26 19:13:41

标签: android listview calendar

我正在创建一个包含活动的日历 我使用另一个库来创建日历,但是当我去显示事件时,我无法将它们打印在列表中。
我尝试使用TextView但它没有用,所以我尝试使用ListView。

ArrayAdapter无法调用events,因为events是在for循环中创建的,但是当我放入for循环时,它无法工作。

  

无法解析构造函数

我想知道我做错了什么? 我可以在TextView中显示它吗?

Event ev1 = new Event(Color.GREEN, 1488052800000L, footballEv);

public void onDayClick(Date dateClicked) {

    List<Event> events = compactCalendarView.getEvents(dateClicked);

    ArrayAdapter<Event> adapter = new ArrayAdapter<Event>(this, android.R.layout.simple_list_item_1, event);


    ListView list = (ListView) findViewById(R.id.listView);
    list.setAdapter(adapter);

}

1 个答案:

答案 0 :(得分:0)

  

无法解析构造函数

您可以查看API文档以了解可用的构造函数。

看这里......

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(
        this,  // Context
        android.R.layout.simple_list_item_1,  // resource 
        event  // Error! Not a List<String>
);

如果要显示活动列表,则需要ArrayAdapter<Event>

你不应该需要一个循环来显示它们。

private ListView listView;
private ArrayAdapter<Event> adapter;
private List<Event> events;

public void onCreate(Bundle b) {
    ...

    listView = (ListView) findViewById(R.id.listView);
    events = new ArrayList<Event>();

    adapter = new ArrayAdapter<Event>(
        this, 
        android.R.layout.simple_list_item_1, 
        events);

    list.setAdapter(adapter);     
}

private void onDateClicked(Date clicked) {
    adapter.clear();
    adapter.addAll(compactCalendarView.getEvents(dateClicked));
}

注意:Event类需要toString()方法。

参考:How do I print my Java object without getting "SomeType@2f92e0f4"?