问题
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