简体   繁体   English

如何在按钮单击时从recyclerview检查项目以显示在另一个活动中recyclerview

[英]how to checked items from recyclerview to show on another activity recyclerview on button click

Hi I am new android developer i have stuck in my project. 嗨,我是新的android开发人员,我一直陷在项目中。 Problem is i want to user select items by checked box and after they click on view items button then open a another activity in which shows all those selected items in recyclerview in that recyclerview item name, price, and quantity. 问题是我要用户通过复选框选择项目,然后单击查看项目按钮,然后打开另一个活动,在该活动中显示recyclerview项目名称,价格和数量中的所有这些选定项目。 This is my code 这是我的代码

OderItems Activity, OderitemAdapter and OrderItemModel.

OderItems Activity

`public class OrderItems extends AppCompatActivity` {
public static final String KEY_ADSID="adsId";
public RecyclerView recyclerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_order);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    recyclerView= (RecyclerView) findViewById(R.id.order_item_recyclerview);
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
          startActivity(new Intent(OrderItems.this,ViewOrder.class));
        }
    });
    parseOrder();
}
public void parseOrder()
    {
        StringRequest stringRequest = new StringRequest(Request.Method.POST, Config.url_ORDERLISTING,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        try {
                            JSONObject jsonObject = new JSONObject(response);

                            Log.d("Response",jsonObject.toString());
                            if (jsonObject.optString("status").equalsIgnoreCase("1"))
                            {
                                // String no_task= jsonObject.getString("error_msg");
                                Toast.makeText(OrderItems.this,"No Order List List !",Toast.LENGTH_LONG).show();
                                // txt_noTask.setText("No Task Is Available");
                                // progressDialog.dismiss();
                            }

                            if (jsonObject.optString("status").equalsIgnoreCase("0") || jsonObject.optString("message").equalsIgnoreCase("Success"))
                            {
                                // Toast.makeText(getActivity(),jsonObject.toString(),Toast.LENGTH_LONG).show();
                                JSONArray jsonArray= jsonObject.getJSONArray("ItemList");

                                ArrayList<OrderItemModel> list =new ArrayList<>();

                                for (int i=0;i<jsonArray.length();i++)
                                {
                                    // TodayTaskModel todayTask = new TodayTaskModel();
                                    OrderItemModel orderitemmodel = new OrderItemModel();

                                    JSONObject jsonObj= jsonArray.getJSONObject(i);
                                    String product_Name =jsonObj.getString("productName");
                                    String product_Price =jsonObj.getString("productPrice");
                                    String package_img =jsonObj.getString("productImg");


// For Set data
                                    orderitemmodel.setProductName(product_Name);
                                    orderitemmodel.setProductPrice(product_Price);
                                    orderitemmodel.setProductImg(package_img);


                                    list.add(orderitemmodel);
                                }
                                // Setup and Handover data to recyclerview
                                OrderItemAdapter adapter=new OrderItemAdapter(getApplicationContext(),list);
                                recyclerView.setAdapter(adapter);
                                recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
                                recyclerView.setHasFixedSize(true);




                            }



                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                        //pDialog.dismiss();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(OrderItems.this,"Server is not Responding !!! ", Toast.LENGTH_LONG).show();
                // Toast.makeText(SpamActivity.this,error.toString(),Toast.LENGTH_LONG).show();
            }
        }){
            @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put(KEY_ADSID,"101");

                return params;
            }

        };

        RequestQueue requestQueue = 
        Volley.newRequestQueue(getApplicationContext());
        requestQueue.add(stringRequest);
    }

}

OderitemAdapter OderitemAdapter

public class OrderItemAdapter extends RecyclerView.Adapter<OrderItemAdapter.ViewHolder> {
    ArrayList<OrderItemModel> orderItemList;
    Context context;
    SqlHandler sqlHandler;
    static double summ;

    public OrderItemAdapter(Context c, ArrayList<OrderItemModel> orderItemList)
    {
        this.context=c;
        this.orderItemList=orderItemList;

    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.order_item_layout, parent, false);
        sqlHandler = new SqlHandler(context);
        return new OrderItemAdapter.ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int i) {
        final OrderItemModel position=orderItemList.get(i);
        holder.txt_ProductName.setText(position.getProductName());
        holder.txt_ProductPrice.setText(position.getProductPrice());
        holder.urlProductImg=position.getProductImg();
        holder.strRate = position.getProductPrice();
        holder.strQuantity=position.getProductQty();

        if (holder.urlProductImg.isEmpty()) { //url.isEmpty()
            Picasso.with(context)
                    .load(R.drawable.localbizlist)
                    .placeholder(R.drawable.localbizlist)
                    .error(R.drawable.localbizlist)
                    .into(holder.img_product);

        }else{
            Picasso.with(context)
                    .load(orderItemList.get(i).getProductImg())
                    .placeholder(R.drawable.localbizlist)
                    .error(R.drawable.localbizlist)
                    .into(holder.img_product); //this is your ImageView
        }

    }

    @Override
    public int getItemCount() {
        return orderItemList.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
    {
        CheckBox chkOrder;
        ImageView img_product;
        TextView txt_ProductName,txt_ProductPrice;
        Spinner itemSpinner;
        String urlProductImg,strRate,strQuantity,strProductName;


        public ViewHolder(View itemView) {
            super(itemView);
            context = itemView.getContext();
            img_product=(ImageView)itemView.findViewById(R.id.img_product);
            txt_ProductName=(TextView)itemView.findViewById(R.id.productName);
            txt_ProductPrice=(TextView)itemView.findViewById(R.id.productPrice);
            chkOrder=(CheckBox)itemView.findViewById(R.id.chk_order_status);
            itemSpinner = (Spinner)itemView.findViewById(R.id.item_spinner);
            List<String> itemQuuantity=new ArrayList<String>();
            itemQuuantity.add("1");
            itemQuuantity.add("2");
            itemQuuantity.add("3");
            itemQuuantity.add("4");
            itemQuuantity.add("5");

            ArrayAdapter<String> itemAdapter=new ArrayAdapter<String>(context,android.R.layout.simple_spinner_dropdown_item,itemQuuantity);

            itemAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            itemSpinner.setAdapter(itemAdapter);
            chkOrder.setOnClickListener(this);
        }

        @Override
        public void onClick(View view) {
            context = view.getContext();
            double TotalBill=0.00;
            if (view.getId()==chkOrder.getId())
            {


                if (chkOrder.isChecked())
                {


                    double spQuantity = Double.parseDouble(itemSpinner.getSelectedItem().toString());
                    double itemRate = Double.parseDouble(strRate);
                    double itemPrice = (spQuantity * itemRate);

                    TotalBill+=itemPrice;

                    String strQuatity=Double.toString(spQuantity);
                    String strTotalBill = Double.toString(TotalBill);
                    String strProductName= String.valueOf(txt_ProductName.getText());
                    String strProductPrice=String.valueOf(txt_ProductPrice.getText());

                    Toast.makeText(context,"Checked Item Bill"+TotalBill,Toast.LENGTH_LONG).show();

                    String query = "INSERT INTO ORDER_ITEMS(product_name,product_quantity,product_price) values ('"
                            + strProductName + "','" + strProductPrice + "','"+strQuatity+"')";
                    sqlHandler.executeQuery(query);

                    SumOrderBill(TotalBill);
                    Toast.makeText(context,"Record Save",Toast.LENGTH_LONG).show();
                   // showlist();
                   // strIDCheckBoxStatus=String.valueOf(chkOrder.getId());

                }else
                {
                    //saveInSp("Checked",false);
                    double spQuantity = Double.parseDouble(itemSpinner.getSelectedItem().toString());
                    double itemRate = Double.parseDouble(strRate);
                    double itemPrice = (spQuantity * itemRate);
                    TotalBill+=itemPrice;
                    String strIdProductName= String.valueOf(txt_ProductName.getText());
                    Toast.makeText(context,"UNCHECKED Item Bill"+TotalBill,Toast.LENGTH_LONG).show();
                    MinOrderBill(TotalBill);
                    String delQuery = "DELETE FROM PHONE_CONTACTS WHERE slno='"+strIdProductName+"' ";
                    sqlHandler.executeQuery(delQuery);
                 //   showlist();

                }

            }

        }

        public void SumOrderBill(double ftotal)
        {

            summ+=ftotal;
            String total2 = String.valueOf(summ);
            Toast.makeText(context, "Total Bill"+total2,Toast.LENGTH_LONG).show();
//            SharedPreferences myPrefsLogin=context.getSharedPreferences("biling", Context.MODE_PRIVATE);
//            SharedPreferences.Editor editor = myPrefsLogin.edit();
//            editor.putString("Total", total2);
//            editor.commit();

        }
        public void MinOrderBill(double ftotal)
        {

            summ-=ftotal;
            String total2 = String.valueOf(summ);
            Toast.makeText(context, "Detection"+summ,Toast.LENGTH_LONG).show();
//            SharedPreferences myPrefsLogin=context.getSharedPreferences("biling", Context.MODE_PRIVATE);
//            SharedPreferences.Editor editor = myPrefsLogin.edit();
//            editor.putString("Total", total2);
//            editor.commit();
        }
    }
}

public class OrderItemModel {
    private String status;
    private String message;
    private String productId;
    private String productName;
    private String productType;
    private String productQty;
    private String productImg;
    private String productPrice;

    public OrderItemModel()
    {

    }


    public String getProductPrice() {
        return productPrice;
    }

    public void setProductPrice(String productPrice) {
        this.productPrice = productPrice;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public String getProductQty() {
        return productQty;
    }

    public void setProductQty(String productQty) {
        this.productQty = productQty;
    }

    public String getProductImg() {
        return productImg;
    }

    public void setProductImg(String productImg) {
        this.productImg = productImg;
    }

}

Please help me for ViewOrder Activity 请帮我进行ViewOrder活动

Here I am posting my code. 我在这里发布我的代码。 After selecting checkbox user click on save button and onClick of that, another activity is open with only selected items(As you want), Here is my code: 选择复选框用户后,单击“保存”按钮,然后单击“ onClick ”,将打开另一个活动,其中仅包含选定项(根据需要),这是我的代码:

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView = (RecyclerView) findViewById(R.id.rView);
        context = this;
        numberlist = new ArrayList<Number>();
        for (int i = 0; i < 50; i++) {
            Number number = new Number(String.valueOf(i), false);
            number.setSelected(false);
            numberlist.add(number);
        }
        customAdapter = new CustomAdapter(context, R.layout.list_item, numberlist);
        recyclerView.setAdapter(customAdapter);

        btn = (Button) findViewById(R.id.button1);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               numberlist= customAdapter.onItemSelected();
                customAdapter.setList(numberlist);
            }
        });

Here is my adapter's code: 这是我的适配器的代码:

    public class CustomAdapter extends BaseAdapter {
    private ArrayList<Number> numList;
    Context context;
    int textViewResourceId;
    public CustomAdapter(Context context, int textViewResourceId, ArrayList<Number> numberlist) {
        this.numList = new ArrayList<Number>();
        this.numList.addAll(numberlist);
        this.context=context;
        this.textViewResourceId=textViewResourceId;
    }

    @Override
    public int getCount() {
        return numList.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    public class ViewHolder {
        TextView code;
        CheckBox name;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        Log.v("ConvertView", String.valueOf(position));
        if (convertView == null) {
            convertView=LayoutInflater.from(context).inflate(textViewResourceId,null);
            holder = new ViewHolder();
          convertView.findViewById(R.id.code);
            holder.name = (CheckBox) convertView.findViewById(R.id.checkBox1);
            convertView.setTag(holder);
            holder.name.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    CheckBox cb = (CheckBox) v;
                    Number number = (Number) cb.getTag();
                    number.setSelected(cb.isChecked());
                }
            });
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        Number number = numList.get(position);

        holder.name.setText(number.getName());
        holder.name.setChecked(number.isSelected());
        holder.name.setTag(number);
        if(number.isSelect()){
            holder.name.setVisibility(View.GONE);
        }
        else {
            holder.name.setVisibility(View.VISIBLE);
        }

        return convertView;
    }

    public ArrayList<Number> onItemSelected() {
        StringBuffer text = new StringBuffer();
        ArrayList<Number> numberArrayList=new ArrayList<Number>();
        text.append("following are selected...\n");
        for (int i = 0; i < numList.size(); i++) {
            Number item = numList.get(i);

            if (item.isSelected()) {
                numList.get(i).setSelect(true);
                numberArrayList.add(numList.get(i));
                text.append("\n" + item.getName());

            }
        }
        Log.e("Text ", text.toString());
        return numberArrayList;
    }

    public void setList(ArrayList<Number> list){

        numList.clear();
        numList.addAll(list);
        notifyDataSetChanged();

    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在从活动中单击按钮时使复选框在 RecyclerView 中可见? - How to make checkboxes visible in RecyclerView on a button click from activity? RecyclerView 单击并替换另一个活动中的图像 - RecyclerView click and replace image from another activity 如何使用RecyclerView在“编辑”模式下显示选中的项目? - How to show a checked items as checked in Edit mode using a RecyclerView? 如何从另一个活动(按钮)更新recyclerview JAVA - How to update recyclerview from another activity (button) JAVA 如何在按钮单击时向 RecyclerView 添加多个项目? - How to add multiple items to RecyclerView on Button Click? 如何从一个 RecyclerView 获取数据并在另一个 Activity 的 RecyclerView 中显示 - How to get data from one RecyclerView and show it in another Activity's RecyclerView 如何从活动片段中访问RecyclerView中的项目 - how to access items in RecyclerView in fragment from an activity 需要将 RecyclerView 中选中的复选框从一个活动发送到另一个活动 - Need to send the checked checkbox in RecyclerView from one activity to another 单击按钮更改RecyclerView项目 - Changing RecyclerView Items on a button click Java:如何禁用按钮,直到选中 1 个 RecyclerView 项目复选框? - Java: How to disable button until even 1 RecyclerView items checkbox is checked?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM