Skip to content Skip to sidebar Skip to footer

Listview With Checkbox And Send Checked Data To Server In Android

I am creating app like e-commerce with listview that containing images, textbox and one checkbox. Now my question is that, i want send cheched item with their hole to serve on onCl

Solution 1:

Finally i done this. Here is the my answer.

public class  Hotels extends AppCompatActivity {

// Declare Variables
JSONParser jsonParser = new JSONParser();
JSONArray jsonarray = null;
private static final String TAG_SUCCESS = "success";
private static final String TAG_ID = "id";
public static final String TAG_NAME = "name";
public static final String TAG_LOCATION = "location";
public static final String TAG_DESC = "description";
String f_date, l_date;
ArrayList<String> ne = new ArrayList<String>();
ProgressDialog loading;
ListView list;
Button booknow;
private ArrayList<Product> itemlist;
Product product;
static String Array = "MyHotels";
View view;
CheckBox click;
String user_id,start_date,end_date,chk_status;
String[] hotel_id;
String hotel = "http://app.goholidays.info/getHotelData.php";
String booking = "http://app.goholidays.info/insertIntoBooking.php";
SharedPreferences sp;
SharedPreferences.Editor editor;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.all_item_layout);
    product = new Product();
    itemlist = new ArrayList<Product>();
    click = (CheckBox) findViewById(R.id.mycheckbox);
    booknow = (Button) findViewById(R.id.bookhotel);
    product = new Product();
    list = (ListView) findViewById(R.id.myimagelist);

    //get current date and time
    Calendar c = Calendar.getInstance();
    System.out.println("Current time => " + c.getTime());
    SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
    sp = PreferenceManager.getDefaultSharedPreferences(Hotels.this);
    editor = sp.edit();

    //get all variables into string
    user_id = sp.getString("id", TAG_ID);
    start_date = sp.getString("start_date", f_date);
    end_date = sp.getString("end_date", l_date);
    chk_status = df.format(c.getTime());

    booknow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            hotel_id = new String[ne.size()];
            hotel_id = ne.toArray(hotel_id);
            for(int i = 0; i < hotel_id.length ; i++){
                Log.d("string is",(String)hotel_id[i]);
            }
            if (hotel_id.length == 0) {
                Toast.makeText(Hotels.this, "Please select Hotel..!", Toast.LENGTH_SHORT).show();
            }else {
                new BackTask().execute();
            }
        }
    });
}
public class ListViewAdapter extends BaseAdapter
{
    Context context;
    LayoutInflater inflater;
    ArrayList<Product> AllMenu = new ArrayList<>();
    ImageLoader imageLoader;
    int checkCounter = 0;
    public ListViewAdapter(Context context, ArrayList<Product> itemlist)
    {
        this.context = context;
        AllMenu = itemlist;
        imageLoader = new ImageLoader(context);
        checkCounter = 0;
    }
    public int getCount() {
        return AllMenu.size();
    }
    public Object getItem(int position) {
        return position;
    }
    public long getItemId(int position) {
        return 0;
    }

    public View getView(final int position, final View convertView, final ViewGroup parent)
    {
        // Declare Variables
        final Product tempMenu = AllMenu.get(position);
        final CheckBox c;
        final ImageView image_path, facility1, facility_1;
        ImageView facility2, facility_2;
        ImageView facility3, facility_3;
        ImageView facility4, facility_4;
        ImageView star1, star2, star3, star4, star5;
        final TextView name, location, desc;

        inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(R.layout.viewpage, parent, false);

        // Get the position
        c = (CheckBox) view.findViewById(R.id.mycheckbox);
        name = (TextView) view.findViewById(R.id.fh_name);
        location = (TextView) view.findViewById(R.id.fh_loc);
        desc = (TextView) view.findViewById(R.id.fh_desc);
        facility1 = (ImageView) view.findViewById(R.id.fh_fc1);
        facility_1 = (ImageView) view.findViewById(R.id.fh_fc11);
        facility2 = (ImageView) view.findViewById(R.id.fh_fc2);
        facility_2 = (ImageView) view.findViewById(R.id.fh_fc22);
        facility3 = (ImageView) view.findViewById(R.id.fh_fc3);
        facility_3 = (ImageView) view.findViewById(R.id.fh_fc33);
        facility4 = (ImageView) view.findViewById(R.id.fh_fc4);
        facility_4 = (ImageView) view.findViewById(R.id.fh_fc44);
        star1 = (ImageView) view.findViewById(R.id.fh_s1);
        star2 = (ImageView) view.findViewById(R.id.fh_s2);
        star3 = (ImageView) view.findViewById(R.id.fh_s3);
        star4 = (ImageView) view.findViewById(R.id.fh_s4);
        star5 = (ImageView) view.findViewById(R.id.fh_s5);
        image_path = (ImageView) view.findViewById(R.id.image_all_main);

    c.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (c.isChecked() && checkCounter >= 3) {
                AllMenu.get(position).setSelected(false);
                c.setChecked(false);
                Toast.makeText(context, "You can select max 3 hotels!!", Toast.LENGTH_SHORT).show();
            } else {
                Product p = (AllMenu).get(position);
                p.setSelected(c.isChecked());
                if (c.isChecked()) {
                    ne.add(AllMenu.get(position).getId());
                    checkCounter++;
                } else {
                    ne.remove(AllMenu.get(position).getId());
                    checkCounter--;
                }
            }
            StringBuffer responseText = new StringBuffer();
            responseText.append("The following were selected...");

            ArrayList<Product> p = AllMenu;
            for (int i = 0; i < p.size(); i++) {
                Product pp = p.get(i);
                if (pp.isSelected()) {
                    responseText.append("\n" + pp.getName() + "\t");
                    responseText.append("\t" + pp.getLocation());
                }
            }
            Toast.makeText(context, responseText, Toast.LENGTH_SHORT).show();
        }
    });
        c.setTag(tempMenu.get(position));
        c.setChecked(tempMenu.isSelected());
        name.setText(tempMenu.getName()+",");

        location.setText(tempMenu.getLocation().trim());
        desc.setText(tempMenu.getDescription().trim());
        imageLoader.DisplayImage(tempMenu.getImage_path(), image_path);
        if (tempMenu.getFacility1().equals("Pool")) {
            facility1.setVisibility(view.VISIBLE);
            facility_1.setVisibility(view.INVISIBLE);
        } else {
            facility_1.setVisibility(view.VISIBLE);
            facility1.setVisibility(view.INVISIBLE);
        }
        if (tempMenu.getFacility2().equals("Bar")) {
            facility2.setVisibility(view.VISIBLE);
            facility_2.setVisibility(view.INVISIBLE);
        } else {
            facility_2.setVisibility(view.VISIBLE);
            facility2.setVisibility(view.INVISIBLE);
        }
        if (tempMenu.getFacility3().equals("Gym")) {
            facility3.setVisibility(view.VISIBLE);
            facility_3.setVisibility(view.INVISIBLE);
        } else {
            facility_3.setVisibility(view.VISIBLE);
            facility3.setVisibility(view.INVISIBLE);
        }
        if (tempMenu.getFacility4().equals("Theater")) {
            facility4.setVisibility(view.VISIBLE);
            facility_4.setVisibility(view.INVISIBLE);
        } else {
            facility_4.setVisibility(view.VISIBLE);
            facility4.setVisibility(view.INVISIBLE);
        }
        if (tempMenu.getStar().equals("1")) {
            star1.setVisibility(view.VISIBLE);
            star2.setVisibility(view.INVISIBLE);
            star3.setVisibility(view.INVISIBLE);
            star4.setVisibility(view.INVISIBLE);
            star5.setVisibility(view.INVISIBLE);
        } else if (tempMenu.getStar().equals("2")) {
            star1.setVisibility(view.VISIBLE);
            star2.setVisibility(view.VISIBLE);
            star3.setVisibility(view.INVISIBLE);
            star4.setVisibility(view.INVISIBLE);
            star5.setVisibility(view.INVISIBLE);
        } else if (tempMenu.getStar().equals("3")) {
            star1.setVisibility(view.VISIBLE);
            star2.setVisibility(view.VISIBLE);
            star3.setVisibility(view.VISIBLE);
            star4.setVisibility(view.INVISIBLE);
            star5.setVisibility(view.INVISIBLE);
        } else if (tempMenu.getStar().equals("4")) {
            star1.setVisibility(view.VISIBLE);
            star2.setVisibility(view.VISIBLE);
            star3.setVisibility(view.VISIBLE);
            star4.setVisibility(view.VISIBLE);
            star5.setVisibility(view.INVISIBLE);
        } else if (tempMenu.getStar().equals("5")) {
            star1.setVisibility(view.VISIBLE);
            star2.setVisibility(view.VISIBLE);
            star3.setVisibility(view.VISIBLE);
            star4.setVisibility(view.VISIBLE);
            star5.setVisibility(view.VISIBLE);
        } else {
            star1.setVisibility(view.INVISIBLE);
            star2.setVisibility(view.INVISIBLE);
            star3.setVisibility(view.INVISIBLE);
            star4.setVisibility(view.INVISIBLE);
            star5.setVisibility(view.INVISIBLE);
        }
        return view;
    }
}
class BackTask extends AsyncTask<String, Void, String> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... params) {

            List<NameValuePair> param = new ArrayList<NameValuePair>();
            param.add(new BasicNameValuePair("start_date", start_date));
            param.add(new BasicNameValuePair("end_date", end_date));
            param.add(new BasicNameValuePair("chk_status", chk_status));
            for (String value : hotel_id) {
                param.add(new BasicNameValuePair("hotel_id[]", value));
            }
            param.add(new BasicNameValuePair("user_id", user_id));
            JSONObject json = jsonParser.makeHttpRequest(booking, "POST", param);
            Log.d("Create Response", json.toString());
            // check for success tag
            try {
                int success = json.getInt(TAG_SUCCESS);
                if (success == 1) {
                    // successfully book a hotels
                    Intent intent = new Intent(Hotels.this, HomePage.class);
                    startActivity(intent);
                    // closing this screen
                    finish();
                } else {

                    Log.d("failed to book hotel", json.toString());
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
        }
}
}

Post a Comment for "Listview With Checkbox And Send Checked Data To Server In Android"