android开发-急!遇到了一个很奇怪的集合问题,在线等大神解答!!!

问题描述

急!遇到了一个很奇怪的集合问题,在线等大神解答!!!

如标题那样,集合A是个全局变量,A是要用来加入集合B中去的。第一次加入没有问题,在第二次A的元素改变之后再次加入到B中去的时候,B中属于A的集合那部分属性的值全部变成A现在的值了。这是为什么呢,在线等大神解答啊。二楼上代码

解决方案

LinearLayout layout6;

LinearLayout layout7;

LinearLayout layout8;

Button mShopping_Car;

Button mShow_Order;

ArrayList<TaoCanItem> mList1 = new ArrayList<TaoCanItem>();

ArrayList<CaiItem> hun_list = new ArrayList<CaiItem>();

ArrayList<CaiItem> su_list = new ArrayList<CaiItem>();

ArrayList<String> order_hun = new ArrayList<String>();

ArrayList<String> order_su = new ArrayList<String>();

ArrayList<TaoCanOrder> order_list = new ArrayList<TaoCanOrder>();

int hun_count = 0;

int su_count = 0;

Double temp_price = 0.0;

String temp_str = "";

解决方案二:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_taocan);

    layout6 = (LinearLayout) findViewById(R.id.layout6);
    layout7 = (LinearLayout) findViewById(R.id.layout7);
    layout8 = (LinearLayout) findViewById(R.id.layout8);
    mShopping_Car = (Button) findViewById(R.id.shopping_car);
    mShow_Order = (Button) findViewById(R.id.show_order);

    mShow_Order.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO 利用order_list查看订的盒饭

        }
    });

    mShopping_Car.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if (order_hun.size() == 0 || order_su.size() == 0) {

                Toast.makeText(TaoCanActivity.this, "请将套餐选择完整",
                        Toast.LENGTH_SHORT).show();

                return;
            }

            TaoCanOrder order = new TaoCanOrder();

            ArrayList<String> temp_order_hun = new ArrayList<String>();
            temp_order_hun = order_hun;

            ArrayList<String> temp_order_su = new ArrayList<String>();
            temp_order_su = order_su;

            order.name = temp_str;
            order.price = temp_price;
            order.hun_list = temp_order_hun;
            order.su_list = temp_order_su;

            order_list.add(order);

            Toast.makeText(TaoCanActivity.this, "加入购物车成功",
                    Toast.LENGTH_SHORT).show();

        }
    });

    TaoCanItem item = new TaoCanItem();
    item.name = "两荤一素";
    item.hun = 2;
    item.su = 1;
    item.price = 8.0;

    TaoCanItem item2 = new TaoCanItem();
    item2.name = "两荤两素";
    item2.hun = 2;
    item2.su = 2;
    item2.price = 10.0;

    mList1.add(item);
    mList1.add(item2);

    for (int i = 0; i < 10; i++) {

        CaiItem c_item = new CaiItem();
        c_item.name = "红烧肉";
        c_item.sort = "1";

        hun_list.add(c_item);

    }

    for (int i = 0; i < 10; i++) {

        CaiItem c_item = new CaiItem();
        c_item.name = "小白菜";
        c_item.sort = "2";

        su_list.add(c_item);
    }

    for (int i = 0; i < hun_list.size(); i++) {

        layout7.addView(getCaiView(hun_list.get(i).name, hun_list.get(i), i));

    }

    for (int i = 0; i < su_list.size(); i++) {

        layout8.addView(getCaiView(su_list.get(i).name, su_list.get(i), i));

    }

    for (int i = 0; i < mList1.size(); i++) {

        layout6.addView(getTxtLabel(mList1.get(i).name, layout6, i, mList1));

    }

}

public TextView getTxtLabel(String str, LinearLayout parent, int index,
        ArrayList<TaoCanItem> list) {

    TextView txt = new TextView(TaoCanActivity.this);

    txt.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.MATCH_PARENT));

    txt.setTextColor(Color.BLACK);

    txt.setGravity(Gravity.CENTER);

    txt.setTextSize(16f);

    txt.setText(str);

    txt.setPadding(0, 20, 0, 15);

    txt.setOnClickListener(new ViewListener(txt, index, parent, list));

    return txt;
}

public class ViewListener implements OnClickListener {

    TextView view;

    LinearLayout parent;

    int index;

    ArrayList<TaoCanItem> list;

    public ViewListener(TextView view, int index, LinearLayout parent,
            ArrayList<TaoCanItem> list) {
        this.view = view;
        this.index = index;
        this.parent = parent;
        this.list = list;
    }

    @Override
    public void onClick(View v) {

        int count = parent.getChildCount();

        for (int i = 0; i < count; i++) {

            if (i == index) {

                parent.getChildAt(i).setBackgroundColor(Color.RED);
                ((TextView) parent.getChildAt(i)).setTextColor(Color.WHITE);
            } else {
                parent.getChildAt(i).setBackgroundColor(Color.TRANSPARENT);
                ((TextView) parent.getChildAt(i)).setTextColor(Color.BLACK);
            }

        }

        hun_count = list.get(index).hun;

        su_count = list.get(index).su;

        temp_price = list.get(index).price;

        temp_str = list.get(index).name;

    }

}

public View getCaiView(String str, CaiItem c_item, int position) {

    View view = getLayoutInflater().inflate(R.layout.item_cai, null);

    TextView txt = (TextView) view.findViewById(R.id.cai_txt);
    ImageView image = (ImageView) view.findViewById(R.id.cai_flag);

    txt.setText(str);

    view.setOnClickListener(new CaiListener(image, c_item, view, position));

    return view;
}

public class CaiListener implements OnClickListener {

    // TaoCanItem item;
    ImageView image;
    CaiItem c_item;
    View view;
    int position;

    public CaiListener(ImageView image, CaiItem c_item, View view,
            int position) {

        this.image = image;
        this.c_item = c_item;
        this.view = view;
        this.position = position;

    }

    @Override
    public void onClick(View v) {

        if (hun_count == 0 || su_count == 0) {

            Toast.makeText(TaoCanActivity.this, "请选择套餐种类",
                    Toast.LENGTH_SHORT).show();
            return;

        }

        int visible = image.getVisibility();

        if (visible == View.VISIBLE) {

            if (c_item.sort.equals("1")) {

                if (order_hun.size() > 0) {

                    order_hun.remove(hun_list.get(position).name);
                    image.setVisibility(View.GONE);
                }

            } else if (c_item.sort.equals("2")) {

                if (order_su.size() > 0) {

                    order_su.remove(su_list.get(position).name);
                    image.setVisibility(View.GONE);

                }

            }

        } else {

            if (c_item.sort.equals("1")) {

                if (order_hun.size() < hun_count) {

                    order_hun.add(hun_list.get(position).name);

                    image.setVisibility(View.VISIBLE);

                } else {
                    Toast.makeText(TaoCanActivity.this, "您的荤菜数量已达上限",
                            Toast.LENGTH_SHORT).show();
                }

            } else if (c_item.sort.equals("2")) {

                if (order_su.size() < su_count) {

                    order_su.add(su_list.get(position).name);

                    image.setVisibility(View.VISIBLE);
                } else {
                    Toast.makeText(TaoCanActivity.this, "您的素菜数量已达上限",
                            Toast.LENGTH_SHORT).show();
                }

            }

        }

    }
}

解决方案三:

以上就是全部代码了,order_su和order_hun就是集合A,order_list就是集合B。请大神指出小弟的代码有什么问题,在此拜谢啦,在线等!!

时间: 2024-12-11 15:11:05

android开发-急!遇到了一个很奇怪的集合问题,在线等大神解答!!!的相关文章

不知道截图能不能上传-android开发中PagerAdapter适配器不能用,第一次提问,求各位大神解答

问题描述 android开发中PagerAdapter适配器不能用,第一次提问,求各位大神解答 解决方案 找到解决办法了,导入jar包就行了http://blog.csdn.net/forandever/article/details/37655139 解决方案二: 我觉得可能是SDK中某些工具类没安装吧,我是新手,求大侠帮忙解答一下!! 解决方案三: 呵呵,自己解决了更好

一个很奇怪的命名空间问题,请大神解题!

问题描述 昨天晚上在编译初步开发好的程序时,发现一个复杂的机制造成的问题,最终问题确定的原因,就是和awaitasync的支持库有关,但其本质原因是什么?就是想不明白,想请高手们解解题.首先因为我的应用服务端使用了WebApi2.0,客户端使用WinForm进行http访问,为了达到较好的用户体验,客户端采用了awaitasync异步.同时为了支持Winxp,类库只能使用到Net4.0,而Net4.0不支持awaitasync异步.解决这个问题,通过的是微软开发的附加支持包,我使用Nuget安装

c语言 单片机-keil4开发中遇到的一个很奇怪的问题。

问题描述 keil4开发中遇到的一个很奇怪的问题. void main(){ // uchar test_i; const uchar timp_button=0xfF; //this value is that the button havn't sticked uchar n_delay; //delay unsigned char j=0; unsigned char i; intend_initiation(); //调用时间设定程序 while(1){ if((hour==alarm_

关联-在线求大神解答,急SQL 子查询

问题描述 在线求大神解答,急SQL 子查询 我现在有两张表,表1和表2,表2里面有一个权限字段,权限1,权限2.权限3.我现在要用权限1的id 查出权限2,3和权限1有关联的ID.然后把这查出来的ID作为条件,在表1里面去查. select * from dbo.Ask_info where login_ID not in (select login_ID from dbo.Login where teacher_Contact in (select login_ID from dbo.Logi

用mac实现php开发socket,但是直接在socket——blind直接丢失,求大神解答

问题描述 用mac实现php开发socket,但是直接在socket--blind直接丢失,求大神解答 相关代码如下, $socket=socket_create(AF_INET,SOCK_STREAM,$commonProtocol) or die("cannot create socketn"); //绑定socket到端口 $result=socket_bind($socket,$host,$port) or die("cannot bind port to socke

bean-请教一个Spring 配置sessionFactory的问题,求大神解答

问题描述 请教一个Spring 配置sessionFactory的问题,求大神解答 为什么我的sessionFactory只要配置packagesToScan就会报session无法初始化错误啊? org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [file:/E:/apache-tomcat-6.0.44/w

app上线后出现BUG怎么处理?开发中用什么方法预防这类问题发生? 跪求大神解答!

问题描述 app上线后出现BUG怎么处理?开发中用什么方法预防这类问题发生? 跪求大神解答! app上线后出现BUG怎么处理?开发中用什么方法预防这类问题发生? 跪求大神解答! 解决方案 出现bug就发布新的版本,客户端自动检查你的服务器,自动下载升级.另外开发过程中注意测试,减少bug

关于一个table中checkbox的问题,求大神解答

问题描述 将一个list中的数据传到前台table中数据大体是这样显示checkbox姓名年龄每一条前面都有个checkbox,然后选中几条数据后按确定按钮,将选中数据的id放在session中回到上一个页面,然后从上一个页面进入这个页面时,那些被选中的id在session中传过来,要根据那些id来判断哪个checkbox是选中过的并在前台反应出来,这个要怎么实现啊顺便问一下怎样通过按钮来控制checkbox全选和全消除,java学的时间比较短,都不是很了解,求大神解惑. 解决方案 解决方案二:

问一个关于Spring.net的问题,求大神解答,急!!!!!!

问题描述 项目是一个webservice项目,到时需要操作数据库,所以我想使用nhibernate和Spring.net进行开发,因为我是第一次使用C#做项目,所以想请教下,看一下我哪里出现问题了,一直都注入不成功,可以的话求一份使用到Spring.net的源码(简单点的).这是我测试用的项目架构[Web.Config的配置,帮我看一下哪里有没有写错/size]<?xmlversion="1.0"?><configuration><configSectio