讓我解釋我的問題。 (!我是新來的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