title: Store Checkbox items into database
body: <p>I have an Android application that displays a list of names using checkboxes. I want to store the checked items and the unchecked items in my databases . I don't want to store any data item permanently on the phone. I require a mechanism by which I can store the data (checked and unchecked) temporarily on the phone and then transfer it to database via a web service.</p>
  
  <p>Can anyone tell me how to go about doing this ? What modifications should I do to my current code?</p>
  
  <p>Here is my Android code that displays the list :</p>
  
  <pre><code>      package com.demo;
  
        import java.io.IOException;
        import java.io.UnsupportedEncodingException;
        import java.net.SocketException;
        import java.util.ArrayList;
        import java.util.List;
        import org.apache.http.NameValuePair;
        import android.app.Activity;
        import android.app.AlertDialog;
        import an droid.content.DialogInterface;
        import android.os.Bundle;
        import android.util.Log;
        import android.widget.TextView;
        import org.apache.http.client.entity.UrlEncodedFormEntity; 
        import org.apache.http.HttpEntity;
        import org.apache.http.HttpResponse;
        import org.apache.http.client.ClientProtocolException;
        import org.apache.http.client.HttpClient;
        import org.apache.http.client.methods.HttpPost;
        import org.apache.http.impl.client.DefaultHttpClient;
        import org.apache.http.message.BasicNameValuePair;
        import org.apache.http.protocol.HTTP;
        import org.json.JSONArray;
        import org.json.JSONException;
        import org.json.JSONObject;
        import org.ksoap2.SoapEnvelope;
        import org.ksoap2.serialization.SoapObject;
        import org.ksoap2.serialization.SoapPrimitive;
        import org.ksoap2.serialization.SoapSerializationEnvelope;
        import org.ksoap2.transport.HttpTransportSE;
  
  
  
   public class TestApp extends Activity {
  
  private static final String SOAP_ACTION = "http://tempuri.org/getData";
  
      private static final String METHOD_NAME = "getData";
  
      private static final String NAMESPACE = "http://tempuri.org/";
      private static final String URL = "http://10.0.2.2/getdata2/Service1.asmx";
      TextView tv;
  
  boolean[] bln1=null; 
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      tv=(TextView)findViewById(R.id.text1);
  
             String[] arr2= call();
  
  
             boolean[] bln=new boolean[arr2.length];
      for(int i=0;i&lt;arr2.length;i++)
     {  
          bln[i]=false;
  
      }  
  
     bln1 = new boolean[arr2.length];
  
      new AlertDialog.Builder(TestApp.this)
      .setIcon(R.drawable.alert_dialog_icon)
      .setTitle("Title")
      .setMultiChoiceItems(arr2,
              bln,
              new DialogInterface.OnMultiChoiceClickListener() {
                  public void onClick(DialogInterface dialog, int whichButton,
                          boolean isChecked) {
  
                                          if(isChecked){
                                      bln1[whichButton] = true;
                                             }
                      else{
                          bln1[whichButton] = false;
                      }
                  }
              })
      .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int whichButton) {
  
              JSONObject jsonObject = new JSONObject();
              String[] arr2=call();
              for(int i=0;i&lt;arr2.length;i++)
                  try {
                      jsonObject.put("key"+i,arr2[i]);
                  } catch (JSONException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
  
              JSONArray jArrayParam = new JSONArray();
              jArrayParam.put(jsonObject);
  
              List&lt;NameValuePair&gt; nameValuePair = new ArrayList&lt;NameValuePair&gt;();
              nameValuePair.add(new BasicNameValuePair("bulkdata",
                      jArrayParam.toString()));
  
              Log.e("bulkdata", jArrayParam.toString());
  
          HttpClient httpclient = new DefaultHttpClient();
          HttpPost httppost = new HttpPost("http://10.0.2.2/login2/Service1.asmx");//web service to send data to to forward to database
  
          httppost.addHeader("Content-Type", "application/x-www-form-urlencoded");
          try {
              httppost.setEntity(new UrlEncodedFormEntity(nameValuePair,  HTTP.UTF_8));
          } catch (UnsupportedEncodingException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
          }
          // Execute HTTP Post Request
  
          try {
              HttpResponse response=null;
              response = httpclient.execute(httppost);
              HttpEntity entity = response.getEntity();
              Log.e("entity:",entity.toString());
          } catch (ClientProtocolException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
          // get response entity
  
          }
      })
      .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int whichButton) {
  
  
          }
      })
     .show();
  
  
  }
  
  
  public String[] call()
  {
      SoapPrimitive responsesData = null; 
  
      SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
  
      SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( 
      SoapEnvelope.VER11); 
      envelope.dotNet = true; 
      envelope.setOutputSoapObject(request);
  
      HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
  
      androidHttpTransport.debug = true; 
  
      try {
  
      androidHttpTransport.call(SOAP_ACTION, envelope);
  
      responsesData = (SoapPrimitive) envelope.getResponse(); 
      System.out.println(" --- response ---- " + responsesData); 
  
      } catch (SocketException ex) { 
      ex.printStackTrace(); 
      } catch (Exception e) { 
      e.printStackTrace(); 
      } 
      System.out.println( " ----" + responsesData );
  
      String serviceResponse= responsesData .toString(); 
  
  
      String[] temp; 
      String delimiter = "#"; 
      temp= serviceResponse.split(delimiter);
      System.out.println( " ---- length ---- " + temp.length); 
  
      return temp; 
  
                  }
  
           } 
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/vwtEx.png" alt="My output till now"></p>