在Android Studio中打印HashMap类型ArrayList的最佳方式



我有一个HashMap类型的ArrayList:

ArrayList<HashMap<String,String>> menlist = new ArrayList<>();

它读取JSON文件并解析数据,如下所示:

public void Test1() throws JSONException {
JSONObject obj = new JSONObject(loadJSONFromAsset("M.json"));
JSONArray jarr = (JSONArray) obj.get("people");
for(int i=0;i<jarr.length();i++)
{
JSONObject jin = jarr.getJSONObject(i);
String fname = jin.getString("firstname");
String lname = jin.getString("lastname");
HashMap<String,String> man = new HashMap<>();
man.put("firstname",fname);
man.put("lastname",lname);
menlist.add(worker);
}
Log.d("menlist",menlist.toString());
}

正如你所看到的,我可以在Log上打印它,但我希望能够在UI上显示整个menlist,就像在xml设计文件中一样。最好的方法是什么?我该如何实现它?

首先,您需要创建Man类:

public class Man {
private String firstName;
private String lastName;
public Man (String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}

之后,你需要在你的功能中使用它,如下所示:

public ArrayList<Man> getListOfMen() throws JSONException {
ArrayList<Man> menlist = new ArrayList<>();
JSONObject obj = new JSONObject(loadJSONFromAsset("M.json"));
JSONArray jarr = (JSONArray) obj.get("people");
for(int i=0;i<jarr.length();i++) {
JSONObject jin = jarr.getJSONObject(i);
String fname = jin.getString("firstname");
String lname = jin.getString("lastname");
Man man = new Man(fname, lname);
menlist.add(man);
}
return menlist;
}

现在,您可以使用此函数创建一个字符串,显示在TextView:中

ArrayList<Man> list = getListOfMen();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
sb.append(list.get(i).getFirstName());
sb.append(" ");
sb.append(list.get(i).getLastName());
sb.append("n");
}

textView.setText(sb.toString());

最新更新