将模型类用于全局 ArrayList 后如何设置值? [英] How to set values after using model class for global ArrayList?

查看:17
本文介绍了将模型类用于全局 ArrayList 后如何设置值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个模型类来存储我的产品名称、价格和数量,然后我将它附加到另一个 Fragment 并尝试在我的 TextView 中显示它.不幸的是,使用 ArrayList 我无法获得项目的位置.以下是我的片段代码.我需要帮助.

I've created one model class to store my product name,price and quantity,and then I attach it to another Fragment and try to display it in my TextView. Unfortunately with that ArrayList I'm not able to get the position of the items. Following is my snippet code. I need help.

模型类 Arr_Model.Java

public class Arr_Model {

    private String BRAND_NAME;
    private String BRNAD_PRICE;
    private String QTY ;

    public Arr_Model(){}

    public String getBRAND_NAME() {
        return BRAND_NAME;
    }

    public String getQTY() {
        return QTY;
    }

    public void setBRAND_NAME(String BRAND_NAME) {
        this.BRAND_NAME = BRAND_NAME;
    }

    public void setBRNAD_PRICE(String BRNAD_PRICE) {
        this.BRNAD_PRICE = BRNAD_PRICE;
    }

    public void setQTY(String QTY) {
        this.QTY = QTY;
    }

    public String getBRNAD_PRICE() {
        return BRNAD_PRICE;
    }
}

这里我从响应中获取值并将它们存储在 arraylist

Here I am getting the values from response and store them in arraylist

ProductDetail.java

1)首先我从响应中获取数据,它是产品名称及其价格

1)First i am getting data from response,it is product name and its price

类 LoadAlbums 扩展 AsyncTask>> {/*** 在启动后台线程之前显示进度对话框* */

class LoadAlbums extends AsyncTask>> { /** * Before starting background thread Show Progress Dialog * */

@Override
protected void onPreExecute() {
    super.onPreExecute();
    pDialog = new ProgressDialog(All_Product_Details.this.getActivity());
    pDialog.setMessage("Loading...");
    pDialog.setIndeterminate(true);
    pDialog.setCancelable(false);
    pDialog.show();
}
protected ArrayList<HashMap<String,String>> doInBackground(String... args) {

    ServiceHandler sh = new ServiceHandler();
    String jsonStr = sh.makeServiceCall(USER_URL, ServiceHandler.GET);
    Log.d("Response: ", "> " + jsonStr);

    if (jsonStr != null) {
        try {


                JSONObject jsonObj = new JSONObject(jsonStr);
                JSONObject pname = jsonObj.getJSONObject(PRODUCT_MAIN);
                System.out.println("Jsonobject product>>" + pname);
                JSONArray sizes = new JSONArray();
                sizes = pname.getJSONArray("attributes");
                for (int j = 0; j < sizes.length(); j++) {
                    JSONObject jsonnewtwo = sizes.getJSONObject(j);
                    option = jsonnewtwo.getJSONArray("options");
                    System.out.println("Option---" + option);

                }
                System.out.println("Attribute size" + sizes);
                user_name = pname.getString(USER_NAME);
                prod_price = pname.getString(PRODUCT_PRICE);
                prod_desc = pname.getString(PRODUCT_DESC);


        } catch (JSONException e) {
            e.printStackTrace();
        }
    } else {
        Log.e("ServiceHandler", "Couldn't get any data from the url");
    }
    return null;
}

protected void onPostExecute(ArrayList<HashMap<String,String>> result) {
    super.onPostExecute(result);

    if (pDialog.isShowing())
        pDialog.dismiss();
    if(user_name.equals(""))
    {
        uname.setText("Not Available");
    }
    else
    {
        uname.setText(user_name);
    }

    if(prod_price.equals(""))
    {
        pprice.setText("Not Available");
    }
    else
    {
        pprice.setText(dollars+prod_price);
    }

    if(prod_desc.equals(""))
    {
        general_desc.setText("Not Available");
    }
    else
    {
        general_desc.setText(Html.fromHtml(prod_desc).toString());
    }

2)然后我增加产品数量并点击添加到购物车按钮,点击添加到购物车我将数据保存在数组列表中..

2)then i increase product quantity and click on add to cart button,on click of add to cart i am saving data in arraylist..

 btn_add_to_cart.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {


                    cartincrement();
                    productnams = GenericUtility.getStringFromSharedPrefsForKey("selected_prodname", getActivity());
                    //System.out.println("Seleced user name=-=-=-=-=-=-==-=" + productnams);
                    productprc = GenericUtility.getStringFromSharedPrefsForKey("selected_prodprc", getActivity());
                    //System.out.println("Seleced prodprice=-=-=-=-=-=-==-=" + productprc);
                    Arr_Model product = new Arr_Model();
                    product.setBRAND_NAME(user_name);
                    product.setBRNAD_PRICE(prod_price);
                    product.setQTY(_value.getText().toString());
                    productArraylist.add(product);

                    System.out.println("TEst--" + productArraylist.get(0).getBRAND_NAME());
                }
            });
            //System.out.println("Test--" + productArraylist.get(0).getBRAND_NAME());

            mBTIncrement.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    increment();

                }
            });

            _decrease.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    decrement();
                }
            });

3) 然后我点击购物车图标查看我添加的商品及其数量

3)then i click on cart icon to view which item i added with its quantity

relcart.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {

                        _value.setText("1");
                        Add_to_cart tf = new Add_to_cart();
                        android.support.v4.app.FragmentManager fm = getFragmentManager();
                        android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
                        ft.replace(R.id.frame_container, tf);
                        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                        ft.addToBackStack(null);
                        ft.commit();
                    }
                });

            }

4) 现在是在列表视图中显示项目的最后一步,到下一个片段

4)now final step to display items in listview,to next fragment

public class Add_to_cart extends Fragment {

    private Button continue_shopping;
    private Button checkout;
    ListView list;
    private TextView _decrease,mBTIncrement,_value;
    private CustomListAdapter adapter;
    private ArrayList<String> alst;
    private ArrayList<String> alstprc;
    private String bname;
    private ArrayList<Arr_Model> productArraylist;


    public Add_to_cart(){}


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        final View rootView = inflater.inflate(R.layout.list_view_addtocart, container, false);

       productArraylist = All_Product_Details.productArraylist;
        // alst=new ArrayList<String>();
       // Bundle bundle = this.getArguments();
       // alst = bundle.getStringArrayList("prodnam");
        //consts.arr = new ArrayList<String>();
        //consts.arr = alst;
       // System.out.println("NAM--" + productArraylist);

       // Bundle bundle1 = this.getArguments();
       // alstprc = bundle1.getStringArrayList("prodprc");




/*
        adapter = new CustomListAdapter(getActivity(),alst);
        list=(ListView)rootView.findViewById(R.id.list_addtocart);
        list.setAdapter(adapter);
        adapter.notifyDataSetChanged();
       list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {


            }
        });*/


        return rootView;
    }

    public class CustomListAdapter extends BaseAdapter {

        private Context context;
        private ArrayList<Arr_Model> listData;
        //private AQuery aQuery;

        String dollars="\u0024";


        public CustomListAdapter(Context context,ArrayList<Arr_Model> listData) {
            this.context = context;
            this.listData=listData;
            // aQuery = new AQuery(this.context);
        }

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

        @Override
        public Object getItem(int position) {
            return listData.get(position);
        }

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

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (convertView == null) {
                holder = new ViewHolder();
                convertView = LayoutInflater.from(getActivity()).inflate(R.layout.list_item_addtocart, null);
                holder.txtproname = (TextView) convertView.findViewById(R.id.proname_addtocart);
                holder.txtprofilecast = (TextView) convertView.findViewById(R.id.proprice_addtocart);

                _decrease = (TextView)convertView.findViewById(R.id.minuss_addtocart);
                mBTIncrement = (TextView)convertView.findViewById(R.id.plus_addtocart);
                _value = (EditText)convertView.findViewById(R.id.edt_procount_addtocart);

                convertView.setTag(holder);
            }else{
                holder = (ViewHolder) convertView.getTag();
            }


            mBTIncrement.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    increment();
                }
            });

            _decrease.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    decrement();
                }
            });

           /* for(int i=0;i<productArraylist.size();i++)
            {
                holder.txtproname.setText(productArraylist.get(0));
            }

            holder.txtprofilecast.setText(dollars+alstprc.get(position));*/
            // aQuery.id(holder.propic).image(listData.get(position).get(TAG_IMAGE),true,true,0,R.drawable.ic_launcher);

            return convertView;
        }
        class ViewHolder{
            ImageView propic;
            TextView txtproname;
            TextView txtprofilecast;

        }

推荐答案

relcart.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        _value.setText("1");
        Add_to_cart tf = new Add_to_cart();

        tf.setList(productArraylist);

        android.support.v4.app.FragmentManager fm = getFragmentManager();
        android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.frame_container, tf);
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
        ft.addToBackStack(null);
        ft.commit();
    }
});

在 Fragment 中添加以下方法.

Add below method in Fragment.

public void setList(ArrayList<Arr_Model> p_productArraylist) {
       productArraylist = p_productArraylist;
}

这篇关于将模型类用于全局 ArrayList 后如何设置值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆