Get the selected quantity in listview item whose value is more than 0 and take that items to next screen with item name, price, selected quantity

718 views
Skip to first unread message

Paramjeet Singh Rana

unread,
Mar 17, 2016, 12:46:06 AM3/17/16
to Android Query
Actually what i am doing is giving user option to increment decrements   
products on all list-view items as shown in attached picture

     I am able to take listview item name,price to next screen but how should
     take the quantity value to next screen.
     the quantity updation code is done in the adapter of products

     ************************************************************************



     ItemListBaseAdapter.java


    public class ItemListBaseAdapter extends ArrayAdapter<RowItem> {
	LayoutInflater mInflater;
	Context context;
	ViewHolder holder;

	public ItemListBaseAdapter(Context context, int resourceId,
			List<RowItem> rowItems) {
		super(context, resourceId, rowItems);
		mSelectedItemsIds = new SparseBooleanArray();
		this.context = context;
	}

	/* private view holder class */
	private class ViewHolder {
		TextView txtTitle, txtPrice;
		TextView txtDesc;
		Button add, sub;

	}

	public View getView(final int position, View convertView,ViewGroupparent)  
    {
		holder = null;
		RowItem rowItem = getItem(position);

		mInflater = (LayoutInflater) context
				.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
		if (convertView == null) {
			convertView = mInflater.inflate(R.layout.item_details_view, null);
			holder = new ViewHolder();
			holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
			holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
			holder.txtPrice = (TextView) convertView.findViewById(R.id.pricee);
			holder.add = (Button) convertView.findViewById(R.id.button1);
			holder.sub = (Button) convertView.findViewById(R.id.button2);
			holder.add_to = (Button) convertView.findViewById(R.id.button3);
			convertView.setTag(holder);
		} else
			holder = (ViewHolder) convertView.getTag();

		holder.txtPrice.setText("Price $ " + rowItem.getPrice());

		holder.txtTitle.setText(rowItem.getTitle());
		holder.txtTitle.setTag(position);


		holder.add.setTag(position);
		holder.sub.setTag(position);
		final ViewHolder viewHolderFinal = holder;
		final RowItem finalRowItem = rowItem;
		holder.add.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				int quantity = finalRowItem.getQuantity(); // get the quantity
			finalRowItem.setQuantity(quantity + 1); // update it by adding 1
				viewHolderFinal.txtDesc.setText(finalRowItem.getDesc());

			}
		});

		holder.sub.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				int quantity = finalRowItem.getQuantity(); // get the quantity
							// for this row     item
				finalRowItem.setQuantity(quantity - 1); // update it by
														// subtracting 1
				viewHolderFinal.txtDesc.setText(finalRowItem.getDesc());
		
			}
		});
		
		return convertView;
	}
     


    ProductList.java


    import java.util.ArrayList;
    import java.util.HashMap;

    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;

     import android.app.AlertDialog;
     import android.app.Fragment;
      import android.app.FragmentTransaction;
      import android.app.ProgressDialog;
      import android.content.Intent;
      import android.os.AsyncTask;
      import android.os.Bundle;
      import android.util.Log;
      import android.util.SparseBooleanArray;
      import android.view.ActionMode;
      import android.view.KeyEvent;
      import android.view.LayoutInflater;
      import android.view.Menu;
      import android.view.MenuInflater;
      import android.view.MenuItem;
      import android.view.View;
      import android.view.View.OnClickListener;
      import android.view.ViewGroup;
      import android.widget.AbsListView;
      import android.widget.AdapterView;
      import android.widget.AdapterView.OnItemClickListener;
      import android.widget.Button;
      import android.widget.ListView;
      import android.widget.Toast;

      public class ProductList extends Fragment {

	 ItemListBaseAdapter apage;
	 ListView userlist;
	 RowItem item;
	 ArrayList<RowItem> sub_cat_arr = new ArrayList<RowItem>();
     String u = Login.url + "Products/API/?f=" + "get_product&cat=", id, level;
	 Button button_show_cart;
     int global_position;


    	public View onCreateView(LayoutInflater inflater, ViewGroup container,
		Bundle savedInstanceState) {
        ViewrootView=inflater.inflate
      (R.layout.pro_list,container,  false);
		userlist = (ListView) rootView.findViewById(android.R.id.list);

		button_show_cart = (Button) rootView.findViewById(R.id.button_add);


		new subcat_data().execute();
		apage = new ItemListBaseAdapter(getActivity(),
				R.layout.item_details_view, sub_cat_arr);
		userlist.setAdapter(apage);
		// userlist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
		apage.clear();


		 button_show_cart.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				int position = (Integer) v.getTag();
                //********************************** 
                unable to get per listview quantity here to take to next screen
                **********************************///
				Intent x = new Intent(getActivity(), Screen2.class);
				startActivity(x);
				
			}
		});
		
		return rootView;
	}

	class subcat_data extends AsyncTask<Void, Void, Void> {
		ProgressDialog dialog;

		protected void onPreExecute() {
			
			dialog = new ProgressDialog(getActivity(),
					AlertDialog.THEME_HOLO_LIGHT);
			dialog.setMessage("Please wait a moment");
			dialog.show();
			dialog.setCancelable(false);
		}

		protected Void doInBackground(Void... arg0) {
			ServiceHandler sh = new ServiceHandler();

			String jsonStr = sh.makeServiceCall(u, ServiceHandler.GET);

			Log.d("Response: ", "> " + jsonStr);

			try {
				 JSONArray jsonarray = new JSONArray(jsonStr);

				for (int i = 0; i < jsonarray.length(); i++) {
					  JSONObject jsonobject = jsonarray.getJSONObject(i);

					RowItem actor = new RowItem();
					String name = jsonobject.getString("name");
					   String price = jsonobject.getString("price");

					actor.setTitle(name);
					actor.setPrice(price);
					sub_cat_arr.add(actor);
				}
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (Exception e) {
				e.printStackTrace();
			}

			return null;
		}

		protected void onPostExecute(Void result) {
			dialog.cancel();
			if (ServiceHandler.response != null) {
				apage.notifyDataSetChanged();

			} else {
				Toast.makeText(getActivity(),
						"error",
						Toast.LENGTH_SHORT).show();
			}
		}
	}

    }
 

    



         Please suggest friends what to do?
         Thanks


          [1]: http://i.stack.imgur.com/HmuzT.png
Reply all
Reply to author
Forward
0 new messages