【问题标题】:Wrong arrangement of data from 'for loop'来自“for循环”的数据排列错误
【发布时间】:2015-01-06 06:50:52
【问题描述】:

我有以下代码。我动态添加了我的文本字段。我在 Genymotion 5.0 (Google Nexus 5) 中显示了我想要的结果,但是当我在其他设备/实际设备中运行我的应用程序时,文本字段会被打乱。请帮助,在此先感谢。

JSONObject jsonObject = new JSONObject(question.getSublabels()); final EditText[] editTextSublabels = new EditText[jsonObject.length()]; for (int i = 0; i < jsonObject.length(); i++) { String names = jsonObject.names().get(i).toString(); editTextSublabels[i] = (EditText) LayoutInflater.from(activity).inflate(R.layout.sublabels, null); editTextSublabels[i].setId(i); editTextSublabels[i].setHint(jsonObject.getString(names)); sublabelsContainers.addView(editTextSublabels[i], params); }

【问题讨论】:

  • 也许你应该尝试使用 addView() 和 index 参数,并让 index 参数 i 像这样 sublabelsContainers.addView(editTextSublabels[i],i, params);也许这将适用于各种设备,但我不确定
  • 谢谢,我试试看 :D
  • @JRowan 还是一样。 :(
  • JSON order mixed up的可能重复

标签: android for-loop


【解决方案1】:

您不能也不应该依赖 JSON 对象中元素的顺序。 在 JSON 中,对象是这样定义的:

对象是一组无序的名称/值对。

如果你想保留订单,你需要重新定义你的数据结构或者把它放在一个jsonarray中

http://www.json.org

【讨论】:

    【解决方案2】:

    JSONObject 是一种映射。它不保留排序。如果要使用 JSON 保留排序,则需要使用数组(并在 Java 中匹配 JSONArray)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 2019-03-18
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多