让我解释我的问题。 (!我是新来的Java,所以也许这种类型的东西可能很容易,但我无法弄清楚)使用JSONObject创建有序数组
我有一个JSONObject看起来像:
{
notes:[
{
"scolaryear":2013,
"codemodule":"B-CPE-042",
"titlemodule":"B1 - Unix & C Lab Seminar",
"codeinstance":"NCE-1-1",
"codeacti":"acti-134315",
"title":"Piscine Jour 1",
"date":"2013-10-04 13:33:51",
"correcteur":"ramassage-tek",
"final_note":0,
"comment":"Ex_00 -> output differs"
},
{} // And so on ..
]
}
现在我可以获取所有数据做这样的事情:
try {
// Pulling items from the array
JSONArray notesArr = jsonObject.getJSONArray("notes");
try {
ListView lv = (ListView) _modulesActivity.findViewById(R.id.listView);
List <String> notesList = new ArrayList <String>();
for (int i = 0; i < notesArr.length(); i++) {
JSONObject tmp = notesArr.getJSONObject(i);
String code_module = tmp.getString("codemodule");
String module = tmp.getString("titlemodule");
String title = tmp.getString("title");
String final_note = tmp.getString("final_note");
String year = tmp.getString("scolaryear");
String comment = tmp.getString("comment");
String display = year + " | " + title + " | " + final_note;
notesList.add(display);
}
ArrayAdapter <String> arrayAdapter = new ArrayAdapter <String> (
_mainContext, android.R.layout.simple_list_item_1, notesList);
lv.setAdapter(arrayAdapter);
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(_mainContext, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(_mainContext, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
因此,与该技术我得到了我在一个阵列中的所有数据,这看起来只是一个类似的ListView:
- 2014 |项目#1 | 13/20
- 2015 |项目#2 | 20/20
但我需要订购我的数据与年和模块。
它看起来像:
> YEAR (year)
> TITLE OF MODULE (module) - MODULE CODE (codemodule)
> PROJECT NAME (title) | MARK (final_note)
- COMMENT (comment)
您有与去年第一头部,当你点击了一年,你可以看到所有的模块:
> MODULE #1
> MODULE #2
...
当你点击在一个模块上你可以看到所有的项目:
> PROJECT #1 | MARK : 20
> PROJECT #2 | MARK : 13
...
最后,当你点击一个项目,你可以看到纪念nt!
^ PROJECT #1 | MARK : 20
- Great project .. bla bla bla
(或者显示的包含注释的弹出窗口,如果有可能)
我知道这可能是配合物的事情,但我真的想做到这一点!
在此先感谢您的帮助!
您需要实施https://code.google.com/p/tree-view-list-android/并根据您的需要对其进行自定义。 – kevz
你可以做的是从字符串中获取日期,将它存储在注释格式的对象中(选择你的格式类似yyyy-MM-dd),然后使用比较器按日期对列表中的对象进行排序,它将按日期排序默认。 –
你想在你的列表中显示什么?请在这里发表文章。 – Radhey