title: How to prevent listArray from populating multiple times?
body: <p>I have a spinner populated from an API call.
  At first loading of fragment, the list is correctly populated, with differents items, one for row.
  After a submit (I need a submit in this fragment) the List is re-populated several times.</p>
  
  <p>This is the <strong>onCreate</strong> method:</p>
  
  <pre><code>@Override
      public void onCreate(Bundle savedInstanceState) {
  
          mItemSubscriptionList = new ArrayList&lt;&gt;();
  
          super.onCreate(savedInstanceState);
      }
  </code></pre>
  
  <p>And this is the method that populate the array list</p>
  
  <pre><code>private void loadItemSubscription() {
  
          ApiMapper mapper = new ApiMapper();
          mapper.getBalance(new ApiMapper.VolleyCallback&lt;JSONArray&gt;() {
              @Override
              public void onSuccess(JSONArray balance) {
  
                 if (balance != null) {
  
                     Log.d(LOGTAG , balance.toString());
  
                     mItemSubscriptionList.clear();
  
                     for (int i = 0; i &lt; balance.length(); i++) {
  
                         Log.d(LOGTAG , "Popolo lo spinner "+i);
                         try {
  
                             JSONObject obj = balance.getJSONObject(i);
  
                             String quantity = obj.getString("balance");
  
                             quantity = quantity.replace(".00","");
  
                                 int id_item = obj.getInt("id_item");
                                 String item = obj.getString("item");
  
                                  item = item + ' '+'('+quantity+')';
  
                                 Log.d(LOGTAG , quantity);
                                 Log.d(LOGTAG , item);
  
                                 ModelItemSubscription modelItemSubscription = new ModelItemSubscription();
  
                                 modelItemSubscription.setMItemId(id_item);
                                 modelItemSubscription.setMItemName(item);
                                 modelItemSubscription.setMItemQuantity(quantity);
  
                                 mItemSubscriptionList.add(modelItemSubscription);
  
                                 mBaseApp.setItemSubscription(modelItemSubscription);
  
  
                             mLoadingDialog.dismiss();
  
  
                         } catch (JSONException e) {
  
                             e.printStackTrace();
  
                         }
  
                     }
  
  
  
                  }
  
                  mItemSubscriptionList = mBaseApp.getItemSubscription();
  
                  if ( mItemSubscriptionList!=null ) {
  
                      renderSpinnerItemSubscription(mItemSubscriptionList);
  
                  }
  
              }
          }, mToken, mIdMemberCard, mIdCampaign);
  
      }
  </code></pre>
  
  <p>In real scenario, I have 4 items to populate. The Log <strong><em>"Popolo lo spinner"</em></strong> <strong>is printed exactly 4 times, but this is the ugly finaly result.</strong></p>
  
  <p><a href="https://i.stack.imgur.com/ugtye.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ugtye.png" alt="enter image description here"></a></p>
  
  <p>Instead this is the right behaviour after the first loading (only 1 item for type)</p>
  
  <p><a href="https://i.stack.imgur.com/BWK00.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/BWK00.png" alt="enter image description here"></a></p>
  
  <p>Fyi this is the array that populates: </p>
  
  <p>[{"balance":"0.00","item":"Lampada","id_item":"540"},{"balance":"0.00","item":"Taglio","id_item":"541"},{"balance":"1.00","item":"Piega","id_item":"542"},{"balance":"11.00","item":"Gelati","id_item":"543"}]</p>
  
  <p>Thank you very much</p>