Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android FirebaseListAdapter未从Firebase数据库中填充Listview_Android_Firebase_Firebase Realtime Database_Firebaseui - Fatal编程技术网

Android FirebaseListAdapter未从Firebase数据库中填充Listview

Android FirebaseListAdapter未从Firebase数据库中填充Listview,android,firebase,firebase-realtime-database,firebaseui,Android,Firebase,Firebase Realtime Database,Firebaseui,我研究Firebase已经有一段时间了,决定试一试 我似乎不明白为什么我的ListView没有被填充。 我似乎无法理解适配器如何查找我们的查询,例如,我希望从firebase数据库中获取字符串“Artist”和“Title” 我的POJO: public class Song { private String mTitle; private String mArtist; public Song(String title, String artist) { mTitle = titl

我研究Firebase已经有一段时间了,决定试一试

我似乎不明白为什么我的ListView没有被填充。 我似乎无法理解适配器如何查找我们的查询,例如,我希望从firebase数据库中获取字符串“Artist”和“Title”

我的POJO:

public class Song {

private String mTitle;
private String mArtist;

public Song(String title, String artist) {
    mTitle = title;
    mArtist = artist;

}

public Song(){
    //Needed for firebase
}

public String getTitle() {
    return mTitle;
}

public String getArtist() {
    return mArtist;
}

public void setTitle(String title) {
    mTitle = title;
}

public void setArtist(String artist) {
    mArtist = artist;
}
我的活动

public class player extends AppCompatActivity {

FirebaseListAdapter<Song> myAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_player2);

    ListView songListView = (ListView) findViewById(R.id.songListView);
    DatabaseReference ref = FirebaseDatabase.getInstance().getReference();

    myAdapter = new FirebaseListAdapter<Song>(player.this, Song.class, R.layout.song_item, ref) {
        @Override
        protected void populateView(View view, Song song, int position) {

            TextView textView = (TextView) view.findViewById(android.R.id.text1);
            ((TextView)view.findViewById(R.id.titleItem)).setText(song.getTitle());
            ((TextView)view.findViewById(R.id.artistItem)).setText(song.getArtist());
        }
    };
    songListView.setAdapter(myAdapter);


}
公共类播放器扩展AppCompative活动{
FirebaseListAdapter-myAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player2);
ListView-songListView=(ListView)findViewById(R.id.songListView);
DatabaseReference ref=FirebaseDatabase.getInstance().getReference();
myAdapter=新的FirebaseListAdapter(player.this、Song.class、R.layout.Song_项、ref){
@凌驾
受保护的void populateView(视图、歌曲、int位置){
TextView TextView=(TextView)view.findViewById(android.R.id.text1);
((TextView)view.findviewbyd(R.id.titleItem)).setText(song.getTitle());
((TextView)view.findviewbyd(R.id.artistItem)).setText(song.getArtist());
}
};
setAdapter(myAdapter);
}
}

我的数据库:


任何帮助都将不胜感激

在某个位置创建适配器时,该位置下的直接子节点将填充该适配器

您将适配器连接到数据库的根目录,因此您的子节点是
issue\u 1
。并且在您的数据模型中,
issue_1
没有
artist
title
属性

使代码正常工作的最简单方法是将适配器连接到树中较低的一级:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
DatabaseReference issue1 = ref.child("issue_1");

myAdapter = new FirebaseListAdapter<Song>(player.this, Song.class,
                                          R.layout.song_item, issue1) {
databasereferef=FirebaseDatabase.getInstance().getReference();
DatabaseReference issue1=ref.child(“问题1”);
myAdapter=新的FirebaseListAdapter(player.this、Song.class、,
R.layout.song_项目,发行号1){

我尝试过这样做,但出现了一个错误。“com.google.firebase.database.DatabaseException:无法将java.lang.String类型的对象转换为com.puxil.mtrl.Song类型”感谢您的建议!