在编辑Spinner时,两次获得相同的项目

时间:2015-10-08 05:26:56

标签: android android-spinner editing

我正在加载微调器两次

  1. 插入详细信息时
  2. 编辑相同的详细信息
  3. 当打开编辑微调器的屏幕时,是在插入细节时加载带有所选项目的微调器。

    现在我已经全局声明了Array List以加载微调器。同时我在插入时分配了所选项目。

    现在的数据 码:  用于加载微调器 "简单加载与插入"

     for (int i = 0; i < result.getPropertyCount(); i++) 
                         {  
                             namesObject = (SoapObject) result.getProperty(i);
                            valuesListForCtg.add(new MatchIDByString("-- Select Grievance Category --",-1));
                             for(int j=0; j<namesObject.getPropertyCount(); j++)
                             {
                                Object objectNames=namesObject.getProperty(j);
                                SoapObject soapObjectw = (SoapObject)objectNames;         
                                valuesListForCtg.add(new MatchIDByString(soapObjectw.getProperty("Category_Name").toString(),Integer.parseInt(soapObjectw.getProperty("Cat_ID").toString())));                                           
                             }
    
                         }
    

    以上相同的微调器代码编辑时加载以及分配项目的附加代码如下

    valuesListForCtg.add(new MatchIDByString(namesObject.getProperty("Category_Name").toString(),Integer.parseInt(namesObject.getProperty("CategoryId").toString())));
    

    现在我遇到的问题是编辑后的微调器正在加载所选项目以及指定项目。

    微调器代码

    SpnCategory.setOnItemSelectedListener(new OnItemSelectedListener() {
    
                @Override
                public void onItemSelected(AdapterView<?> parent, View view,
                        int position, long id) {
                    try
                    {
    
                    MatchIDByString s = (MatchIDByString) parent.getItemAtPosition(position);
                    CategoryValue = String.valueOf(s.StringID);                    
                    CtgName = s.StringItem;
                    IDStatusCtg = Integer.parseInt(CategoryValue);                  
                    SpnForEditCtg = SpnCategory.getSelectedItemPosition();
    
    
                    if(CategoryValue.equals("-1"))
                    {
                        SpnCategoryType.setEnabled(false);
                        SpnCategoryType.setAdapter(null);
                    }else
                    {
                    if (!CategoryValue.equals("0")) {
                        final boolean chk = isOnline();
                        if (chk != true) {              
                            PUC.InternetServiceNotAvailbale();              
                        }
                        else {
                            SpnCategoryType.setEnabled(true);
                        new LoadCategoryTypeSpinner().execute();
                        }
                    }
                    }
    
                    }catch(Exception e)
                    {
                        PUC.PleaseTryAgain();
                    }
                }
    
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                    // TODO Auto-generated method stub
    
                }
            });
    

1 个答案:

答案 0 :(得分:0)

编辑细节时,可以在向其中添加数据之前创建新的ArrayList或清除之前的ArrayList。否则它将添加新数据,但不会刷新以前的数据。

为了更好地理解,您可以发布更多代码。