Return calendar event details in an array

情到浓时终转凉″ 提交于 2019-12-13 06:15:16

问题


I have a calendar in which if the user selects the date and it takes him to an event details page. On the event details page the data is displayed in a tabular format. So far so good. The problem is how to set the details of the event in the eventDetails function and return them to set the text.

Code:

  //get the data and split it
    String[] dateAr = date_string.split("-|\\||\\(|\\)|\\s+");
    m = Integer.parseInt(dateAr[6]);
    d = Integer.parseInt(dateAr[3]);
    y = Integer.parseInt(dateAr[8]);

    name = (TextView) this.findViewById(R.id.name);
    title = (TextView) this.findViewById(R.id.title);
    details = (TextView) this.findViewById(R.id.details);


    name.setText(name_details); //should get the info from the eventDetails method
    title.setText(title_details); //should get the info from the eventDetails method
    details.setText(event_details); //should get the info from the eventDetails method

  //event details
  public String eventDetails(int m, int d) {
    String holiday = "";
    switch (m) {
        case 1:
            if (d == 1) {
                holiday = "Some event";
            } else if (d == 10) {
                holiday = "Some event";
            }
            break;
        case 3:
            if ((d == 11) || (d == 12)) {
                holiday = "Some event";
            }
            break;
        case 7:
            if ((d == 1) && (d== 7)) {
                holiday = "Some event";
            }
            break;
    }

    return holiday;
}

The String holiday returns only one object. I want to get the name, title and details and set the corresponding element's text to it. How can I achieve this? How do I add the name, title and details as separate objects and return them as separate objects to set the text accordingly? DO I add them to an array? Something like for every event date:

String holiday[] = {"name of the event", "title of the event", "details of the event"};

If so, how do I return the array to set the text?


回答1:


Create a class that contains these event details and return an instance of it. For example:

public class Event
{
    public final String name;
    public final String title;
    public final String details;

    public Event(final String a_name,
                 final String a_title,
                 final String a_details)
    {
        name = a_name;
        title = a_title;
        details = a_details;
    }
};

public Event eventDetails(int m, int d) {
    if (some-condition)
        return new Event("my-name1", "my-title1", "mydetails1");
    else
        return new Event("my-name2", "my-title2", "mydetails2");
}

final Event e = eventDetails(1, 4);
name.setText(e.name);
title.setText(e.title);
details.setText(e.details);



回答2:


There two ways you can return, 1) as array you specified 2) Create HolidayVO with required variables and gettter/setters.

Based on case:

case 1:
    if (d == 1) {
       //Create holiday object with values;
    } else if (d == 10) {
        //Create holiday object with values;
    }
    break; 


来源:https://stackoverflow.com/questions/11386650/return-calendar-event-details-in-an-array

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!