SMP3.0学习笔记之五 使用OData Native SDK修改数据
2014-02-22 07:48
495 查看
作者:穿行印象
http://blog.sina.com.cn/s/blog_7a9486880101qa3s.html
获取到航班信息之后,如果有满意的航班就需要预定了。于是增加如下界面进行航班的预定:
点击“Book”按钮后会使用OData
SDK创建POST操作所需要的对象,然后向SMP暴露的OData服务发起POST操作:
public void Book(View v)
{
this.bookFlight();
}
private void bookFlight()
{
IODataEntry newBookingEntry = new ODataEntry();
newBookingEntry.putPropertyValue(ConnectivityConstants.AIRLINE_ID, mAirlineID);
newBookingEntry.putPropertyValue(ConnectivityConstants.CONNECTION_ID, mConnectionID);
newBookingEntry.putPropertyValue(ConnectivityConstants.FLIGHT_DATE, Utils.formatDate(mFlightDate, mApplication.useJSONFormat()));
newBookingEntry.putPropertyValue(ConnectivityConstants.CUSTOMER_ID, ConnectivityConstants.DEFAULT_CUSTOMER_ID);
newBookingEntry.putPropertyValue(ConnectivityConstants.AGENCY_ID, ConnectivityConstants.DEFAUL_AGENCY_ID);
newBookingEntry.putPropertyValue(ConnectivityConstants.BOOKING_DATE, Utils.formatDate(new Date(), mApplication.useJSONFormat()));
try
{
IRequest request = RequestBuilderHelper.getInstance().buildPOSTRequest(this, ConnectivityConstants.BOOKING_COLLECTION, newBookingEntry, BOOKING_REQUEST_TAG);
mApplication.getRequestManager().makeRequest(request);
}
catch(Exception e)
{
e.printStackTrace();
}
}
一旦调用成功,会触发onSuccess方法:
@Override
public void onSuccess(IRequest aRequest, IResponse aResponse) {
final IResponse response = aResponse;
mMessages = new ArrayList();
mCurrentRequestTag = aRequest.getRequestTAG();
if (aRequest.getRequestTAG().equalsIgnoreCase(BOOKING_REQUEST_TAG)) {
try {
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity);
Parser parser = mApplication.getParser();
mBookingEntries = parser.parseODataEntries(responseString, ConnectivityConstants.FLIGHT_COLLECTION, mApplication.getODataSchema());
showText();
} catch (Exception e) {
e.printStackTrace();
}
}
}
onSuccess该方法的最后会给出会调用showText()方法,给用户提示预定机票成功,如下图所示:
showText()方法代码:
private void showText()
{
Message msg = new Message();
mHandler.sendMessage(msg);
}
private Handler mHandler = new Handler()
{
public void handleMessage(Message msg)
{
if (mBookingEntries != null)
{
String bookingID = mBookingEntries.get(0).getPropertyValu(ConnectivityConstants.BOOKING_ID);
Toast.makeText(getApplicationContext(), "Book Flight Successfully, BookingID:" + bookingID, Toast.LENGTH_LONG).show();
}
};
};
http://blog.sina.com.cn/s/blog_7a9486880101qa3s.html
获取到航班信息之后,如果有满意的航班就需要预定了。于是增加如下界面进行航班的预定:
点击“Book”按钮后会使用OData
SDK创建POST操作所需要的对象,然后向SMP暴露的OData服务发起POST操作:
public void Book(View v)
{
this.bookFlight();
}
private void bookFlight()
{
IODataEntry newBookingEntry = new ODataEntry();
newBookingEntry.putPropertyValue(ConnectivityConstants.AIRLINE_ID, mAirlineID);
newBookingEntry.putPropertyValue(ConnectivityConstants.CONNECTION_ID, mConnectionID);
newBookingEntry.putPropertyValue(ConnectivityConstants.FLIGHT_DATE, Utils.formatDate(mFlightDate, mApplication.useJSONFormat()));
newBookingEntry.putPropertyValue(ConnectivityConstants.CUSTOMER_ID, ConnectivityConstants.DEFAULT_CUSTOMER_ID);
newBookingEntry.putPropertyValue(ConnectivityConstants.AGENCY_ID, ConnectivityConstants.DEFAUL_AGENCY_ID);
newBookingEntry.putPropertyValue(ConnectivityConstants.BOOKING_DATE, Utils.formatDate(new Date(), mApplication.useJSONFormat()));
try
{
IRequest request = RequestBuilderHelper.getInstance().buildPOSTRequest(this, ConnectivityConstants.BOOKING_COLLECTION, newBookingEntry, BOOKING_REQUEST_TAG);
mApplication.getRequestManager().makeRequest(request);
}
catch(Exception e)
{
e.printStackTrace();
}
}
一旦调用成功,会触发onSuccess方法:
@Override
public void onSuccess(IRequest aRequest, IResponse aResponse) {
final IResponse response = aResponse;
mMessages = new ArrayList();
mCurrentRequestTag = aRequest.getRequestTAG();
if (aRequest.getRequestTAG().equalsIgnoreCase(BOOKING_REQUEST_TAG)) {
try {
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity);
Parser parser = mApplication.getParser();
mBookingEntries = parser.parseODataEntries(responseString, ConnectivityConstants.FLIGHT_COLLECTION, mApplication.getODataSchema());
showText();
} catch (Exception e) {
e.printStackTrace();
}
}
}
onSuccess该方法的最后会给出会调用showText()方法,给用户提示预定机票成功,如下图所示:
showText()方法代码:
private void showText()
{
Message msg = new Message();
mHandler.sendMessage(msg);
}
private Handler mHandler = new Handler()
{
public void handleMessage(Message msg)
{
if (mBookingEntries != null)
{
String bookingID = mBookingEntries.get(0).getPropertyValu(ConnectivityConstants.BOOKING_ID);
Toast.makeText(getApplicationContext(), "Book Flight Successfully, BookingID:" + bookingID, Toast.LENGTH_LONG).show();
}
};
};
相关文章推荐
- SMP3.0学习笔记之四 使用OData Native SDK获取数据
- SMP3.0学习笔记之十二 使用AppBuilder读取OData服务的数据
- SMP3.0学习笔记之三 使用OData SDK或者MAF Login组件进行OnBoarding
- CUBRID学习笔记 40 使用net修改数据
- GoKit3(V)学习笔记04_使用资源管理工具修改Lark7618数据点语音资源
- JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询
- SMP3.0学习笔记之十九 使用REST API在任何操作系统上消费SMP的OData服务
- SMP3.0学习笔记之十 使用Kapsel EncryptedStorage插件以及GET/POST对OData服务进行操作
- Andorid中使用Gson和Fast-json解析库解析JSON数据---第三方库学习笔记(二)
- SMP3.0学习笔记之十四 AppBuilder中使用Chart组件
- SilverLight学习笔记--Silverlight中INotifyPropertyChanged 接口在数据绑定中的使用
- 《疯狂Java讲义(第2版)》学习笔记:使用DatagramSocket发送接收数据
- Android(java)学习笔记251:ContentProvider使用之添加数据到联系人(掌握)
- 微软企业库4.1学习笔记(三十二)数据访问模块 在应用中使用数据访问模块
- 【OpenCV3学习笔记 】相机标定函数 calibrateCamera( ) 使用详解(附相机标定程序和数据)
- Mysql DBA 高级运维学习笔记-DML之修改表中的数据实战
- MySQL学习笔记-约束以及修改数据表
- Struts学习笔记之在ActionForm中使用集合属性并自动组装(populate)数据
- GoKit3(V)学习笔记03_使用资源管理工具修改Lark7618语音唤醒词
- SMP3.0学习笔记之十六 与非SAP后端系统集成之数据库篇