2 2, Tạo thư mục mới tên “libs” trong thư mục gốc của project.
3. Truy cập địa chỉ (hoặc lên google search cho lẹ)
và download file "ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar" . Bỏ file vừa download vào thư mục “libs” vừa tạo.
5.Trong hộp thoại “Properties” chọn tab “Libraries” chọn nút “Add JARs…” chọn đến file “ksoap2…” vừa mới chép vào rồi OK -> OK.
6.Dể ý thấy hình của file trong thư mục lib có thêm cái hình icon nhỏ ở góc.
7. Mở file layout thiết kế giao diện có 2 TextView làm nhãn, 1 EditText để nhập độ F, 1 EditText để nhập độ C, 1 button để đổi “Độ C sang độ F” , 1 button để đổi “Độ F sang độ C” và 1 button để “Xóa”:
8.Truy cập địa chỉ http://www.w3schools.com/webservices/tempconvert.asmxnhấn vào hàm đầu tiên (CelsiusToFahrenheit) kéo xuống bên dưới và phân tích cú pháp.
Cho CelsiusToFahrenheit:
|
Cho FahrenheitToCelsius:
|
1 9. Mở file manifest và khai báo quyền internet
<uses-permission android:name="android.permission.INTERNET"/>
10: Trong file java chính, khai báo các biến, ánh xạ chúng.
EditText etdoC,etdoF;
Button btFtoC, btCtoF,btclear;
3 11: Khai báo các biến chuỗi để chuẩn bị.
private static String METHOD_NAME1 = "FahrenheitToCelsius";
private static String METHOD_NAME2 = "CelsiusToFahrenheit";
private static String URL =
"http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
12: Bắt sự kiện onClick cho nút btFtoC. Trong hàm onClick của nó bắt đầu viết như bên dưới gồm khởi tạo SoapObject, gán dữ liệu vào, khai báo envelope, và gán outputSoapObject cho envelope:
//khoi tao soap request va param
SoapObject request=new SoapObject(NAMESPACE,METHOD_NAME1);
//dua du lieu vao cho request
request.addProperty("Fahrenheit",etdoF.getText().toString());
//khai bao Envelope va dua vao version cua SOAP
SoapSerializationEnvelope envelope=
newSoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet=true;
5 13: Tiếp theo khai báo Transport và đưa vào URL. Sau đó gọi hàm call để gọi service và truyền vào action và envelope.
//khoi tao httptransport
HttpTransportSE httptransport=new HttpTransportSE(URL);
//goi webservice
try {
httptransport.call( SOAP_ACTION1, envelope);
} catch (Exception e) {
Log.d("loi"," "+ e.toString());
}
14: Cuối cùng lấy dữ liệu về và gán lên EditText.
//lay du lieu
SoapObject ketqua=(SoapObject)envelope.bodyIn;
if(ketqua!=null)
{
etdoC.setText(ketqua.getProperty(0).toString());
}
else
{
Toast.makeText(getApplicationContext(), "khong co ket qua", Toast.LENGTH_SHORT).show();
}
15: Chạy chương trình (nhớ phải có internet). Nhập vào 1 con số độ F, nhấn nút “Đổi F sang C” để thấy kết quả.
16. Viết tiếp cho nút “Đổi C sang F”.
17. Nâng cấp version lên 4.0 chạy thử để thấy lỗi. Sửa lỗi để chương trình có thể chạy tốt trên các version cao.
No comments:
Post a Comment