Android POJO类的本质
请告诉我,我是android新手,我需要完全了解在android中使用Android POJO类的本质,android,Android,请告诉我,我是android新手,我需要完全了解在android中使用POJO类填充recyclerview。我这样做的方式是从本地/API获取数据,将其放入2DArrayList并将其传递给recyclerview的适配器类,例如,下面的代码从设备获取音乐并将其添加到musics 2DArrayList: musics.clear(); musicResolver = getActivity().getContentResolver(); Uri musicuri = Medi
POJO
类填充recyclerview
。我这样做的方式是从本地/API获取数据,将其放入2DArrayList
并将其传递给recyclerview的适配器类,例如,下面的代码从设备获取音乐并将其添加到musics 2DArrayList
:
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类进行检索的方法:
//music.clear();
musicResolver=getActivity().getContentResolver();
Uri musicuri=MediaStore.Audio.Media.EXTERNAL\u CONTENT\u Uri;
游标musicCursor=musicSolver.query(musicuri,null,null,null,“LOWER(“+MediaStore.Audio.Media.TITLE+”)ASC”);
if(musicCursor!=null){
while(musicCursor.moveToNext()){
ArrayList tempmusic=新建ArrayList();
字符串数据=
getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
字符串标题=
getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
字符串相册=
getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
弦乐艺术家=
getString(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
添加(新音频(数据、标题、专辑、艺术家));
}
musicCursor.close();
}
rvAdapter.notifyDataSetChanged();
现在我的问题是:
- 术语“POJO”最初表示不遵循任何主要Java对象模型、约定或框架的Java对象;如今,“POJO”也可以用作“普通老JavaScript对象”的首字母缩略词,在这种情况下,该术语表示具有类似血统的JavaScript对象
- POJO通常很简单,因此不依赖于其他库、接口或注释。这增加了在多个项目类型中重用的机会
- 类的可序列化性由实现java.io.Serializable接口的类启用。未实现此接口的类的任何状态都不会序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义
阅读@Tobioyeelekan很高兴帮助你
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;
}
}
//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<>();
String data =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
String title =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String album =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
String artist =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
tempmusic.add(new Audio(data, title, album, artist));
}
musicCursor.close();
}
rvAdapter.notifyDataSetChanged();