我需要帮助来显示对话框中的数组3项
数组中的项目:InvernaderoId,名称和Invernarder
我在将jsonobject转换为jsonarray时遇到问题
JsonObject:
{"data":[{"invernaderoId":"1","name":"inver B","Invernarder":"inv1"},{"invernaderoId":"2","name":"inver C","Invernarder":"inv2"},{"invernaderoId":"3","name":"inv13","Invernarder":"inv3"},{"invernaderoId":"4","name":"inv14 A","Invernarder":"HTFRA14A"}]}
使用JSONArray arr = js.getJSONArray("data");
转换为JsonArray
结果示例:
[{"invernaderoId":"1","name":"inver B","Invernarder":"inv1"},{"invernaderoId":"2","name":"sd 12 C","Invernarder":"HTESP12C"},{"invernaderoId":"3","name":"s13","Invernarder":"sd"},{"invernaderoId":"4","name":"ds 14 A","Invernarder":"ds"}]
编码替换数组字符串:
String[] arr2 = arr.toString().replace("},{", " ,").split(" ");
和
final String[] employes= arr2;
代码对话框:
new AlertDialog.Builder(getContext())
.setTitle("Selected one")
.setSingleChoiceItems(employes, itemSelected, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int selectedIndex) {
String nombreselect = employes[selectedIndex];
employes.setText(nombreselect);
}
})
.setPositiveButton("Ok", null)
.setNegativeButton("Cancel", null)
.show();
}
});
String[] arr2 = arr.toString().replace("},{", " ,").split(" ");
由于拥有数组,最简单的方法是正确传递json数组,创建适配器(例如,EG。ArrayAdapter<DataModel>
),然后在构建器上调用setAdapter
。在适配器子类中,您可以控制如何在对话框上呈现单个条目
您可以遍历JSONArray元素并将它们添加到String数组中,然后使用此String数组来提供AlertDialg的内容>
final String jsonResponse = "{ \"data\":[ {\n" + " \"invernaderoId\":\"1\",\n" + " \"name\":\"inver B\",\n" + " \"Invernarder\":\"inv1\"\n" + " \n" + "},\n" + " {\n" + " \"invernaderoId\":\"2\",\n" + " \"name\":\"inver C\",\n" + " \"Invernarder\":\"inv2\"\n" + " \n" + "},\n" + " {\n" + " \"invernaderoId\":\"3\",\n" + " \"name\":\"inv13\",\n" + " \"Invernarder\":\"inv3\"\n" + " \n" + "},\n" + " {\n" + " \"invernaderoId\":\"4\",\n" + " \"name\":\"inv14 A\",\n" + " \"Invernarder\":\"HTFRA14A\"\n" + " \n" + "}\n" + " \n" + "]\n" + "}"; try { JSONObject js = new JSONObject(jsonResponse); JSONArray arr = js.getJSONArray("data"); String[] list = new String[arr.length()]; for (int i = 0; i <= arr.length() - 1; i++) { JSONObject element = arr.getJSONObject(i); String InvernaderoId = "\"invernaderoId\":\"" + element.getString("invernaderoId") + "\", "; String Name = "\"name\":\"" + element.getString("name") + "\", "; String Invernarder = "\"Invernarder\":\"" + element.getString("Invernarder") + "\""; list[i] = InvernaderoId + Name + Invernarder; } AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setTitle("Title") .setSingleChoiceItems(list, -1, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int position) { Toast.makeText(getContext(), "Position: " + position, Toast.LENGTH_SHORT).show(); } }).setPositiveButton("Ok", null) .setNegativeButton("Cancel", null) .show(); } catch (JSONException e) { e.printStackTrace(); }
这是结果