Hoc*_*ock 0 java sorting android android-recyclerview
在我的应用程序中,我想将服务器中的一些数据添加到RecyclerView.
\n我写了下面的代码,我可以从服务器获取数据并显示到RecyclerView.
\n但我的 json 未按服务器的字母排序。\n我想在将此数据添加到 中之前,首先用字母表对其进行排序,然后添加到 中。\n我的 json :ArrayListArrayList
{\n "validationCheckResult": {\n "isValid": true,\n "message": "Success"\n },\n "internalCarBoard": [{\n "id": 0,\n "name": \xe2\x80\x9cS500\xe2\x80\x9d,\n "companyName": \xe2\x80\x9cBenz\xe2\x80\x9d,\n }, {\n "id": 0,\n "name": "\xc2\xa0E250\xe2\x80\x9d,\n "companyName": \xe2\x80\x9cBenz\xe2\x80\x9d,\n }, {\n "id": 0,\n "name": \xe2\x80\x9cTT\xe2\x80\x9d,\n "companyName": \xe2\x80\x9cAudi\xe2\x80\x9d,\n }, {\n "id": 0,\n "name": "\xc2\xa0Talisman\xe2\x80\x9d,\n "companyName": \xe2\x80\x9cRenult\xe2\x80\x9d,\n }, {\n "id": 0,\n "name": "\xc2\xa0Accord\xe2\x80\x9d,\n "companyName": \xe2\x80\x9cHonda\xe2\x80\x9d,\n }, {\n "id": 0,\n "name": \xe2\x80\x9cA8\xe2\x80\x9d,\n "companyName": \xe2\x80\x9cAudi\xe2\x80\x9d,\n }]\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我想在添加到之前对companyName中的 json 进行排序并使用字母表ArrayList。
\n但我想将其分类到Android而不是服务器中。
我的Java代码:
\n\npublic class SortListActivity extends AppCompatActivity {\n\n private RecyclerView sortList_recycler;\n private SortAdapter sortAdapter;\n private List<InternalCarBoard> model = new ArrayList<>();\n private API api;\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_sort_list);\n sortList_recycler = findViewById(R.id.sortList_recycler);\n api = ApiClient.getClient().create(API.class);\n sortAdapter = new SortAdapter(model);\n sortList_recycler.setHasFixedSize(true);\n sortList_recycler.setLayoutManager(new LinearLayoutManager(this));\n sortList_recycler.setAdapter(sortAdapter);\n\n Call<VersionUpdateResponse> call = api.getCar();\n call.enqueue(new Callback<VersionUpdateResponse>() {\n @Override\n public void onResponse(Call<VersionUpdateResponse> call, Response<VersionUpdateResponse> response) {\n if (response.isSuccessful()) {\n if (response.body() != null) {\n if (response.body().getInternalCarBoard().size() > 0) {\n model.clear();\n model.addAll(response.body().getInternalCarBoard());\n sortAdapter.notifyDataSetChanged();\n }\n }\n }\n }\n\n @Override\n public void onFailure(Call<VersionUpdateResponse> call, Throwable t) {\n\n }\n });\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n在添加到之前,如何使用companyName中的字母对 json 进行排序?ArrayList
像这样使用 Collections.sort()
Collections.sort(model, new Comparator<InternalCarBoard>(){
public int compare(InternalCarBoard obj1, InternalCarBoard obj2) {
// ## Ascending order
return obj1.getCompanyName().compareToIgnoreCase(obj2.getCompanyName); // To compare string values
// return Integer.valueOf(obj1.getId()).compareTo(obj2.getId()); // To compare integer values
// ## Descending order
// return obj2.getCompanyName().compareToIgnoreCase(obj1.getCompanyName()); // To compare string values
// return Integer.valueOf(obj2.getId()).compareTo(obj1.getId()); // To compare integer values
}
});
Run Code Online (Sandbox Code Playgroud)
检查这个以了解详细信息。
| 归档时间: |
|
| 查看次数: |
10545 次 |
| 最近记录: |