使用Android

时间:2017-03-11 08:07:29

标签: java android listview

我正在开发Android应用程序并完成它。我目前面临一个问题,至少目前是这样。

我从不同活动的ListView多选中获取用户选择,然后成功将其存储在全局列表中。唯一的问题是,它将最后一个选项设置为全局列表

下面是进一步说明,只是为了阐述我的观点。我无法粘贴代码,因为它很复杂,所以认为最好以这种方式解释。

我有3项活动。每个活动都有一个独特的标题。在每个Activity中,都有ListView的值。我已经在每个活动中为用户选择(为了理解)粗体。

活动1 - 标题水果 列表

  1. Fruit 1
  2. 水果2
  3. 水果3
  4. Fruit 4
  5. 活动2 - 标题蔬菜

    1. 蔬菜1
    2. 蔬菜2
    3. 蔬菜3
    4. 活动3 - 标题肉类

      1. 肉1
      2. 肉2
      3. 肉3
      4. 肉类4
      5. 肉5
      6. 现在,当我使用下面的代码存储选择时,它完全正常。

        int count = 0;
        int size = list.size();
        
        List<String> fruits_selection = new ArrayList<String>();
        
        for (int i = 0; i<size; i++){
            if (list.get(i).isSelected()){
                count++;
        
                String selected_fruits_string = list.get(i).getFruit_id();
        
                fruits_selection.add(selected_fruits_string);
            }
        }
        
        Global globalSelectedItems = (Global)getApplicationContext();
        globalSelectedItems.setSelected_items_gv(selected_fruits_string);
        

        同样的代码适用于只有&#34;水果&#34;的所有活动。被正确格式的标题取代。

        所以这给了我最后一个活动的选择结果而不是全部。我知道这很明显,为什么它会给我这个结果。

        所以我得到的结果是:

        Meat 1, Meat 4
        

        我想要:

        Fruit 2, Fruit 3, Vegetable 1, Vegetable 3, Meat 1, Meat 4
        

        有人可以帮助我将下一个活动中的新选择附加到globalSelectedItems吗?

1 个答案:

答案 0 :(得分:1)

  

所以这给了我最后一个活动选择的结果,而不是   所有

试试这个

 public class HealthyUDXB_Order extends Application { 
private List<String> selected_items_gv= new ArrayList<String>(); 

public List<String> getSelected_items_gv() { 
return selected_items_gv; 
} 

public void setSelected_items_gv(List<String> selected_items_gv) { 
this.selected_items_gv.addAll(selected_items_gv); 
} 
}