来自 'for loop' 的数据排列错误
Wrong arrangement of data from 'for loop'
我有以下代码。我动态添加了我的文本字段。我在 Genymotion 5.0 (Google Nexus 5) 中显示了我想要的结果,但是当我 运行 我的应用程序在其他 devices/actual 设备中时,文本字段被打乱。请帮助,在此先感谢。
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);
}
一个JSON对象是一种地图。它不保留顺序。如果要使用 JSON 保留排序,则需要使用数组(并匹配 Java 中的 JSONArray
)。
您不能也不应该依赖 JSON 对象中元素的顺序。
在JSON中,一个对象是这样定义的:
An object is an unordered set of name/value pairs.
如果你想保留顺序,你需要重新定义你的数据结构或者把它放在一个jsonarray里
我有以下代码。我动态添加了我的文本字段。我在 Genymotion 5.0 (Google Nexus 5) 中显示了我想要的结果,但是当我 运行 我的应用程序在其他 devices/actual 设备中时,文本字段被打乱。请帮助,在此先感谢。
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);
}
一个JSON对象是一种地图。它不保留顺序。如果要使用 JSON 保留排序,则需要使用数组(并匹配 Java 中的 JSONArray
)。
您不能也不应该依赖 JSON 对象中元素的顺序。 在JSON中,一个对象是这样定义的:
An object is an unordered set of name/value pairs.
如果你想保留顺序,你需要重新定义你的数据结构或者把它放在一个jsonarray里