java - 将文本添加到元素数组列表
问题描述
我正在为我学校的项目创建一个元素的列表视图,当我运行应用程序时,它会显示元素的详细信息。我希望它显示特定的文本,但我找不到怎么做。这是我的java代码:
private ArrayList<Playlist>playlists=new ArrayList<Playlist>();
ArrayAdapter<Playlist> adapter;
lvPlaylists=(ListView)findViewById(R.id.lvPlaylists);
adapter =new ArrayAdapter<Playlist>(Playlists.this, android.R.layout.simple_list_item_1, playlists);
lvPlaylists.setAdapter(adapter);
我将项目从 firebase cloud firestore 获取到我的 arraylist 的功能
CollectionReference PlaylistsRef = db.collection("Users").document(Mail).collection("Playlists");
PlaylistsRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()){
for (QueryDocumentSnapshot documentSnapshot : task.getResult())
{
if(!task.getResult().getDocuments().isEmpty())
{
String PlaylistName= (String)documentSnapshot.get("Name");
PlaylistsRef.document(PlaylistName).get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
if (documentSnapshot != null){
Playlist playlist = new Playlist((String)documentSnapshot.get("Name"), (String)documentSnapshot.get("Genre"));
playlists.add(playlist);
lvPlaylists.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent=new Intent(Playlists.this,PlaylistView.class);
intent.putExtra("Name", adapter.getItem(position).getName());
intent.putExtra("Genre", adapter.getItem(position).getGenre());
intent.putExtra("PN", PN);
startActivity(intent);
}
});
adapter.notifyDataSetChanged();
}
}
});
}
}
}
}
});`
播放列表:
public class Playlist implements Serializable {
private String name;
private String genre;
private ArrayList<Song> songs;
public Playlist(String name, String genre, ArrayList<Song> songs)
{
this.name=name;
this.genre=genre;
this.songs=songs;
}
public Playlist(String name, String genre)
{
this.name=name;
this.genre=genre;
this.songs=null;
}
public Playlist()
{
this.name=null;
this.genre=null;
this.songs=null;
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return this.name;
}
public void setGenre(String genre)
{
this.genre=genre;
}
public String getGenre()
{
return this.genre;
}
public ArrayList<Song> getSongs ()
{
return this.songs;
}
public void addSong (Song song)
{
songs.add(song);
}
public String ToString()
{
return this.name+" "+this.genre;
}
public void removeSong(Song song)
{
for(int i=0;i<this.songs.size();i++)
{
if(this.songs.get(i).getName()==song.getName())
{
this.songs.remove(i);
}
}
}
现在它在我运行应用程序时向我显示: 向我显示项目的详细信息,我想要文本
解决方案
推荐阅读
- oracle - Oracle 脚本无任何异常地停止工作
- python - 检查字符串是否在列表中的字典值中
- python - sys.stdout.write 刷新输出问题
- javascript - 有没有办法为脚本自定义属性分配变量的值?
- typescript - 对象不可分配给 { [key: string]: any }?
- javascript - 如何从 jQuery UI Datapicker 语言文件中读取月份名称?
- android - Qt android ONe plus 设备中所有字母都大写
- javascript - 我如何在 reactjs 中使用 AMP 页面
- jquery - Symfony 4 - 放置按钮的问题
- php - 使用 .htaccess 和 php 从其他域加载图像