[英]J2ME PIM EVENTS
我目前正在開發J2ME應用程序事件管理器。 我正在使用PIM,但對此沒有足夠的知識。 有人可以幫助我或給我有關如何設置顯示,編輯和刪除記錄的參考嗎?
到目前為止,這是我所做的。
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.TextField;
import javax.microedition.lcdui.DateField;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Alert;
import javax.microedition.pim.PIM;
import javax.microedition.pim.PIMItem;
import javax.microedition.pim.EventList;
import javax.microedition.pim.Event;
import javax.microedition.pim.PIMException;
import java.util.Date;
public class AddCalendarEvent extends MIDlet implements CommandListener {
private Display display;
private Form addEventForm;
private Command cmdAddEvent;
private Command cmdExit;
private TextField summaryField;
private DateField startDateField;
private DateField endDateField;
private TextField noteField;
private TextField locationField;
public AddCalendarEvent() {
if(checkPIMSupport() == false) {
exitMIDlet();
}
initializeComponents();
}
public void initializeComponents() {
display = Display.getDisplay(this);
addEventForm = new Form("Add event");
cmdAddEvent = new Command("Add event", Command.SCREEN, 0);
addEventForm.addCommand(cmdAddEvent);
cmdExit = new Command("Exit", Command.EXIT, 0);
addEventForm.addCommand(cmdExit);
addEventForm.setCommandListener(this);
try {
EventList eventList = (EventList)PIM.getInstance().openPIMList(
PIM.EVENT_LIST, PIM.READ_WRITE);
if(eventList.isSupportedField(Event.SUMMARY) == true) {
summaryField = new TextField("Summary", null, 20,
TextField.ANY);
addEventForm.append(summaryField);
} else {
eventList.close();
throw new Exception("Summary field is not supported");
}
if(eventList.isSupportedField(Event.START) == true) {
startDateField = new DateField("Start date",
DateField.DATE_TIME);
startDateField.setDate(new Date());
addEventForm.append(startDateField);
}
if(eventList.isSupportedField(Event.END) == true) {
endDateField = new DateField("End date", DateField.DATE_TIME);
endDateField.setDate(new Date());
addEventForm.append(endDateField);
}
if(eventList.isSupportedField(Event.NOTE) == true) {
noteField = new TextField("Note", null, 20, TextField.ANY);
addEventForm.append(noteField);
}
if(eventList.isSupportedField(Event.LOCATION) == true) {
locationField = new TextField("Location", null, 20,
TextField.ANY);
addEventForm.append(locationField);
}
eventList.close();
} catch(PIMException pimExc) {
}
catch(SecurityException secExc) {
}
catch(Exception exc) {
exitMIDlet();
}
}
private boolean checkPIMSupport() {
String propValue = System.getProperty("microedition.pim.version");
if(propValue != null) {
return true;
} else {
return false;
}
}
private void addEvent() {
try {
EventList eventList = (EventList)PIM.getInstance().openPIMList(
PIM.EVENT_LIST, PIM.READ_WRITE);
Event event = eventList.createEvent();
if(eventList.isSupportedField(Event.SUMMARY) == true) {
String summary = summaryField.getString();
event.addString(Event.SUMMARY, PIMItem.ATTR_NONE, summary);
} else {
eventList.close();
throw new Exception("Summary field for event is not supported");
}
if(eventList.isSupportedField(Event.START) == true) {
long startDate = startDateField.getDate().getTime();
event.addDate(Event.START, PIMItem.ATTR_NONE, startDate);
}
if(eventList.isSupportedField(Event.END) == true) {
long endDate = endDateField.getDate().getTime();
event.addDate(Event.END, PIMItem.ATTR_NONE, endDate);
}
if(eventList.isSupportedField(Event.NOTE) == true) {
String note = noteField.getString();
event.addString(Event.NOTE, PIMItem.ATTR_NONE, note);
}
if(eventList.isSupportedField(Event.LOCATION) == true) {
String location = locationField.getString();
event.addString(Event.LOCATION, PIMItem.ATTR_NONE, location);
}
event.commit();
eventList.close();
showAlert("Info", "Event was successfully added.");
} catch(PIMException pimExc) {
showAlert("PIMException", pimExc.getMessage());
}
catch(SecurityException secExc) {
showAlert("SecurityException", secExc.getMessage());
}
catch(Exception exc) {
showAlert("Exception", exc.getMessage());
}
}
private void showAlert(String title, String message) {
Alert alert = new Alert(title);
alert.setString(message);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}
public void startApp() {
display.setCurrent(addEventForm);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
private void exitMIDlet() {
notifyDestroyed();
}
public void commandAction(Command command, Displayable displayable) {
if(command == cmdAddEvent) {
addEvent();
}
if(command == cmdExit) {
exitMIDlet();
}
}
}
研究jsr75標簽Wiki中建議的規范和教程。
看起來這是最適合您的問題的方法: PIM API入門
...本文提供了PIM API的代碼密集型入門教程; 它:
- 推出JSR 75
- 描述
javax.microedition.pim
可選軟件包- 提供有關PIM API的詳細信息
- 體驗使用它們所涉及的努力
- 提供可以適應您自己的無線應用程序需求的代碼
...
上面的教程還在“ 更多信息”部分中列出了建議進一步研究的一些資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.