Ứng dụng về web sevice với android!

vanchuong

Member
10/10/12
139
1
18
30
Mấy anh chị nào trong diễn đàn có ví dụ về ứng dụng android với web sevice cho em tham khảo với.Em làm đề tài fastfood bên android ứng dụng ksaop2 để kết nối với web sevice mà đang bí chỗ gọi Intent.Click nút chọn ko hiển thị được bên class giỏ hàng(thử gọi class đăng ký cũng k được).Code hàm Main.
Code:
package com.example.example;
public class MainActivity extends Activity implements IButtonClick {
    private AdapterView<ListAdapter> iv_hinhanh;
    String images;
    private ListView lv ;
    //Intent intent;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                    .permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
        // Khai báo listview
        Button bt = (Button) findViewById(R.id.btchon);
        lv = (ListView) findViewById(R.id.lv_home);
        ImageView hinhanh = (ImageView) findViewById(R.id.iv_hinhanh);
        // khai báo 1 mảng list kiểu string chứa các thông tin về món ngon.
        ArrayList<Monngon> result = new ArrayList<Monngon>();
        // Khai bao cac bien su dung ksoap
        SoapObject table = null;
        SoapObject client = null;
        SoapObject tableRow = null;
        SoapObject responseBody = null;// Chứa nội dung XML của dataset
        AndroidHttpTransport transport = null;// Gọi webservice
        SoapSerializationEnvelope sse = null;
        sse = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        sse.dotNet = true;
        transport = new AndroidHttpTransport(
        "http://10.0.2.2:1732/DATN/Service.asmx?wsdl");
        Log.e("Test", "1");
        client = new SoapObject("http://tempuri.org/", "danhsachmonan");
        sse.setOutputSoapObject(client);
        sse.bodyOut = client;
        Log.e("Test", "hellssssssssso");
        try {
            transport.call("http://tempuri.org/danhsachmonan", sse);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.e("Loi", "loi ksoap");
        }
        catch (XmlPullParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.e("Loi", "ksoap2");
        }
        try {
            responseBody = (SoapObject) sse.getResponse();
        } catch (SoapFault e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.e("Loi", "Khong nhan duoc ket qua");
        }

        // Bỏ các thông tin XML chỉ lấy kết quả trả về
        responseBody = (SoapObject) responseBody.getProperty(1);

        if (responseBody == null) {
        } else {

            int loader = R.drawable.ic_launcher;

            table = (SoapObject) responseBody.getProperty(0);
            for (int i = 0; i < table.getPropertyCount(); i++) {
                tableRow = (SoapObject) table.getProperty(i);
                Monngon monngon = new Monngon();
                String s = tableRow.getProperty("HinhMN").toString();
                Log.e("Loi", s);
                monngon.sethinhanh(tableRow.getProperty("HinhMN").toString());
                monngon.setma(tableRow.getProperty("MaMN").toString());
                monngon.setten(tableRow.getProperty("TenMN").toString());
                monngon.setmota(tableRow.getProperty("Mota").toString());
                monngon.setgia(tableRow.getProperty("Gia").toString());
                result.add(monngon);
            }
        }
        // Hiển thị
        ListViewAdapter adapter = new ListViewAdapter(this, result);
        adapter.setOnclickButton(this);
        Log.e("Test", "Kiểm tra lỗi");
        lv.setAdapter(adapter);
        Log.e("Test", "Thanhcong");

        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View viewe,
                    int position, long id) {

            }

        });

    }

    @Override
    public void onClickAddToCart(int position) {
        View view = lv.getChildAt(position);
        Monngon mn = (Monngon)view.getTag();
        Intent intent = new Intent(getApplicationContext(), Dangky.class);
        Bundle bundle=new Bundle();
        bundle.putSerializable("monngon", mn);
        intent.putExtra("DATA", bundle);
        startActivity(intent);
                if(mn != null)
            Toast.makeText(this,"Bạn đã chọn" +mn.getten() + "có giá là" + mn.getgia(),Toast.LENGTH_LONG).show();
            else
            Toast.makeText(this,"Lỗi",Toast.LENGTH_LONG).show();
            }
}
Code bên dangky.class
Code:
//package com.example.example;
//
//import java.io.IOException;
//import org.ksoap2.SoapEnvelope;
//import org.ksoap2.SoapFault;
//import org.ksoap2.serialization.SoapObject;
//import org.ksoap2.serialization.SoapSerializationEnvelope;
//import org.ksoap2.transport.AndroidHttpTransport;
//import org.xmlpull.v1.XmlPullParserException;
//
//import android.os.Bundle;
//import android.os.StrictMode;
//import android.app.Activity;
//import android.util.Log;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.widget.Button;
//import android.widget.TextView;
//
//public class Dangky extends Activity{
//
//    TextView tv_ma;
//    TextView tv_ten;
//    TextView tv_ngaysinh;
//    TextView tv_diachi;
//    TextView tv_SDT;
//    Button btnDK;
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.dangky);
//        if (android.os.Build.VERSION.SDK_INT > 9) {
//            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
//                    .permitAll().build();
//            StrictMode.setThreadPolicy(policy);
//        }
//        tv_ma = (TextView)findViewById(R.id.editText1);
//        tv_ten = (TextView)findViewById(R.id.EditText01);
//        tv_ngaysinh = (TextView)findViewById(R.id.editText3);
//        tv_diachi = (TextView)findViewById(R.id.EditText02);
//        tv_SDT = (TextView)findViewById(R.id.editText2);
//        btnDK = (Button)findViewById(R.id.button1);
//        btnDK.setOnClickListener(new OnClickListener() {
//
//            @Override
//            public void onClick(View arg0) {
//                // TODO Auto-generated method stub
//                SoapObject table = null;
//                SoapObject client = null;
//                SoapObject tableRow = null;
//                SoapObject responseBody = null;//Chứa nội dung XML của dataset
//                AndroidHttpTransport transport = null;// Gọi webservice
//                SoapSerializationEnvelope sse = null;
//
//                sse= new SoapSerializationEnvelope(SoapEnvelope.VER11);
//                sse.dotNet = true;
//                transport = new AndroidHttpTransport("http://10.0.2.2:1732/DATN/Service.asmx?wsdl");
//                Log.e("Test", "10000000");
//                client = new SoapObject("http://tempuri.org/","dskhachhang");
//
//                client.addProperty("MaKH", "tv_ma");
//                client.addProperty("TenKH", "tv_ten");
//                client.addProperty("Ngaysinh","tv_ngaysinh");
//                client.addProperty("Diachi","tv_diachi");
//                client.addProperty("SDT","tv_SDT");
//
//                sse.setOutputSoapObject(client);
//                sse.bodyOut = client;
//                Log.e("Test", "hellsssssssssoanh khoi daij ca");
//                try {
//                    transport.call("http://tempuri.org/dskhachhang", sse);
//                }
//                catch (IOException e)
//                {
//                    // TODO Auto-generated catch block
//                    e.printStackTrace();
//                    Log.e("Loi", "loi ksoap");
//                }
//
//                catch (XmlPullParserException e) {
//                    // TODO Auto-generated catch block
//                    e.printStackTrace();
//                    Log.e("Loi", "ksoap2 anh khoi dai ca");
//                }
//                try {
//                    responseBody = (SoapObject) sse.getResponse();
//                } catch (SoapFault e) {
//                    // TODO Auto-generated catch block
//                    e.printStackTrace();
//                    Log.e("Loi", "Khong nhan duoc ket qua anh khoi dai ca");
//                }
//
//
//            }
//        });
//
//    }
//}
package com.example.example;
//import javax.mail.internet.InternetAddress;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.NavUtils;
import android.support.v4.app.TaskStackBuilder;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Dangky extends FragmentActivity {
    Button dangky_btn,huy_btn;
    ActionBar actionBar;
    Context context=this;
    EditText tenkhachhang,makhachhang,sodienthoai,ngaysinh,diachi;
    SoapObject table = null;
    SoapObject client = null;
    SoapObject tableRow = null;
    SoapObject responseBody = null;// Chứa nội dung XML của dataset
    AndroidHttpTransport transport = null;// Gọi webservice
    SoapSerializationEnvelope sse = null;

    String res = "";
    String ma,ten,ngsinh,dchi,dt;
    //Button dangky_btn,huy_btn;

    @SuppressLint("NewApi")
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dangky);
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                    .permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
        actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        dangky_btn=(Button)findViewById(R.id.btn_dangki);
        huy_btn=(Button)findViewById(R.id.btHuybo);
 
        makhachhang=(EditText)findViewById(R.id.makhachhang);
        tenkhachhang=(EditText)findViewById(R.id.tenkhachhang);
        ngaysinh=(EditText)findViewById(R.id.ngaysinh);
        diachi=(EditText)findViewById(R.id.diachi);
        sodienthoai=(EditText)findViewById(R.id.sdt);
        //huy
 
        huy_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                finish();
            }
        });
        //dang ky
        dangky_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                //email = email_edit.getText().toString();
                ma=makhachhang.getText().toString();
                ten=tenkhachhang.getText().toString();
                ngsinh=ngaysinh.getText().toString();
                dchi=diachi.getText().toString();
                dt=sodienthoai.getText().toString();
            if(ma.trim().equals("")||ten.trim().equals("")||ngsinh.trim().equals("")||dchi.trim().equals("")||dt.trim().equals(""))
            {
                Toast.makeText(getApplicationContext(),"Bạn chưa nhập dữ liệu!", Toast.LENGTH_SHORT).show();
            }
            else if(ma.length()<3||ma.length()>12)
            {
                Toast.makeText(getApplicationContext(), "Mã khách hàng từ 3 đến 6 ký tự!", Toast.LENGTH_SHORT).show();
            }
            else if(ma.compareTo(ma)>0)
            {
                Toast.makeText(getApplicationContext(), "Sai mã khách hàng!", Toast.LENGTH_SHORT).show();
            }
            else
            {
                //if(isValidEmailAddress(email)==false)
            //    {
                //    Toast.makeText(getBaseContext(), "Email không hợp lệ", Toast.LENGTH_SHORT).show();
                //}
            //    else
                new RegisterTask().execute();
                //settext("");
                textbox();
            }
            }

        });
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            Intent upIntent = new Intent(getIntent());
            if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
                TaskStackBuilder.from(this).addNextIntent(upIntent)
                        .startActivities();
                finish();
            } else {
                NavUtils.navigateUpTo(this, upIntent);
            }
        }

        return super.onOptionsItemSelected(item);
    }
    private String Registerto() {
        // biến kiểm tra login nếu =1

        sse = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        sse.dotNet = true;
        transport = new AndroidHttpTransport("http://10.0.2.2:1732/DATN/Service.asmx?wsdl");
        client = new SoapObject("http://tempuri.org/", "register");
        client.addProperty("makhachhang", ma);
        client.addProperty("tenkhachhang",ten);
        client.addProperty("ngaysinh",ngsinh);
        client.addProperty("diachi",dchi);
        client.addProperty("sodienthoai",dt);

        sse.setOutputSoapObject(client);
        sse.bodyOut = client;
        Log.e("Test", "hellssssssssso");
        try{
            transport.call("http://tempuri.org/register", sse);
            //Log.d("TAG", sse.setOutputSoapObject(client));
            //System.out.print(sse.setOutputSoapObject(client));
            sse.bodyOut=client;
        }
        catch(Exception e)
        {
        Log.e("TAG", e+"");

        }

        return res;
    }
    private class RegisterTask extends AsyncTask<String,String, String>
    {
        ProgressDialog progressDialog;
        @Override
        protected String doInBackground(String... arg0) {
            // TODO Auto-generated method stub
            String result=Registerto();
            return result;
        }

        protected void onPostExecute(String result) {
            progressDialog.dismiss();
            if(result.equals("ok")){
            Toast.makeText(getBaseContext(),"Thành công",Toast.LENGTH_LONG).show();
            Intent i = new Intent(getApplicationContext(), giohang.class);

            startActivity(i);
            }
            else
            {

                Toast.makeText(getBaseContext(),"Đăng ký thất bại",Toast.LENGTH_LONG).show();
                Intent i = new Intent(getApplicationContext(), giohang.class);
                startActivity(i);

            }
        }
        @Override
        protected void onPreExecute() {
            // tiền sử lý giao diện trước đăng nhập
            progressDialog = new ProgressDialog(context);
            progressDialog.setMessage("Đang đăng ký...");
            progressDialog.setCancelable(false);
            progressDialog.show();
        }
    }
    //kiem tra email co dung hay khong
    //public static boolean isValidEmailAddress(String email)
    //{
    //    boolean result=true;
    //    try
    //    {
        //    InternetAddress emailAddr=new InternetAddress(email);
        //    emailAddr.validate();
        //}
    //    catch(Exception e)
    //    }

        //return result;
    //}
    private void textbox()
    {
        tenkhachhang.setText("");
        makhachhang.setText("");
        ngaysinh.setText("");
        diachi.setText("");
        sodienthoai.setText("");
        //diachi_edit.setText("");
    }
}
Ảnh hiển thị bên form chính.
 

vanchuong

Member
10/10/12
139
1
18
30
Nhiều vấn đề lắm bác ạ. E remote hỗ trợ bạn ấy lâu nay, hôm trước e bận nên chưa kịp giúp nên bạn ấy post lên đây. Tối qua e giúp xong rui :D
Anh ak,bài em lưu giỏ hàng được rồi,nhưng mã khách hàng chưa đăng ký nó vẫn lưu dc.Em muốn bắt lỗi trên web service,những thông tin mà khách hàng gởi lên có mã khách hàng khớp với mã khách hàng trong table khách hàng thì mới lưu vô table hóa đơn trong csdl được.Anh biết cách nào giúp em với ko??