【发布时间】:2018-01-29 10:10:15
【问题描述】:
我有一个通过 API 调用填充的微调器。 在第一次加载片段时,列表被正确填充,不同的项目,一个用于行。 提交后(我需要在此片段中提交)列表会重新填充几次。
这是 onCreate 方法:
@Override
public void onCreate(Bundle savedInstanceState) {
mItemSubscriptionList = new ArrayList<>();
super.onCreate(savedInstanceState);
}
这是填充数组列表的方法
private void loadItemSubscription() {
ApiMapper mapper = new ApiMapper();
mapper.getBalance(new ApiMapper.VolleyCallback<JSONArray>() {
@Override
public void onSuccess(JSONArray balance) {
if (balance != null) {
Log.d(LOGTAG , balance.toString());
mItemSubscriptionList.clear();
for (int i = 0; i < 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);
}
在实际场景中,我有 4 个要填充的项目。 Log “Popolo lo spinner” 正好打印了 4 次,但这是丑陋的最终结果。
这是第一次加载后的正确行为(类型只有一项)
仅供参考,这是填充的数组:
[{"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"}]
非常感谢
【问题讨论】:
-
你试过下面的答案吗