请我是android的新手,我需要完全理解使用POJO
类来填充android中的recyclerview
。我这样做的方法是从本地/ API获取数据将其放入2D ArrayList
并将其传递给recyclerview的适配器类,例如下面的代码从设备获取音乐并将其添加到音乐2D {{ 1}}:
ArrayList
我对上述方法没有任何问题,它工作正常,但我遇到了一个教程,其中使用了musics.clear();
musicResolver = getActivity().getContentResolver();
Uri musicuri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor = musicResolver.query(musicuri, null, null, null, "LOWER(" + MediaStore.Audio.Media.TITLE + ")ASC");
if (musicCursor != null) {
while (musicCursor.moveToNext()) {
ArrayList<String> tempmusic = new ArrayList<>();
tempmusic.add(0, musicCursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
long time = Integer.parseInt(musicCursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)));
tempmusic.add(1, (new SimpleDateFormat("mm:ss", Locale.getDefault())).format(new Date(time)));
tempmusic.add(2, musicCursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
tempmusic.add(3, musicCursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
musics.add(tempmusic); //2d array
}
musicCursor.close();
}
rvAdapter.notifyDataSetChanged();
类来实现POJO
,见下文:
Serializable
使用POJO类检索的方法:
public class Audio implements Serializable {
private String data;
private String title;
private String size;
private String duration;
public Audio(String data, String title, String duration, String size) {
this.data = data;
this.title = title;
this.duration = duration;
this.size = size;
}
public String getData() {
return data;
}
public String getTitle() {
return title;
}
public String getDuration() {
return duration;
}
public String getSize() {
return size;
}
}
现在我的问题是:
非常感谢明确的解释,谢谢。
答案 0 :(得分:1)
pojo类的用处是什么
术语&#34; POJO&#34;最初表示一个Java对象,它不遵循任何主要的Java对象模型,约定或框架;如今&#34; POJO&#34;可以用作&#34; Plain Old JavaScript Object&#34; 的首字母缩写,在这种情况下,该术语表示具有相似谱系的JavaScript对象
POJO通常很简单,所以不依赖于其他库,接口或注释。这增加了在多个项目类型中重复使用的可能性
详细了解Plain old Java object (POJO)和Advantage of POJO
如果pojo类实现了serializable,它意味着什么,以及它比使用普通的pojo类或只使用2d arraylist的优势