点按“后退”按钮时,Firebase数据库会重置

时间:2018-01-06 22:24:59

标签: android listview firebase firebase-realtime-database

我刚刚设法将Firebase的实时数据库连接到我建立的Android应用程序,用于介绍项目列表,但现在我遇到了一些问题。

问题:

  1. 当我通过按后退按钮离开活动时,数据库会重置。它来自代码还是来自数据库? (见下面的代码)
  2. 我只能在列表中添加一个项目。尽管我可以在数据库中看到它们,但系统忽略了所有其他系统。我想这与代码有关。任何人都可以帮我这个吗?
  3. 除了上述问题之外,是否可以使用相同的数据库从Firebase存储或任何其他外部源向ListView添加图片?

    在FireBase在线门户网站中,我只有两个选项(名称和值)。该值是手机屏幕上返回的值。是否可以在代码中引入图像(或链接到图像)?

    
    
    public class Events extends AppCompatActivity {
    
        DatabaseReference dref;
        ListView listView;
        ArrayList<String> list = new ArrayList<>();
        ArrayAdapter<String> adapter;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_events);
    
            listView= (ListView) findViewById(R.id.listview);
            adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,list);
            listView.setAdapter(adapter);
            dref = FirebaseDatabase.getInstance().getReference();
    
            dref.addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                    String value = dataSnapshot.getValue(String.class);
                    list.add(value);
                    adapter.notifyDataSetChanged();
                }
    
                @Override
                public void onChildChanged(DataSnapshot dataSnapshot, String s) {
    
                }
    
                @Override
                public void onChildRemoved(DataSnapshot dataSnapshot) {
    
                }
    
                @Override
                public void onChildMoved(DataSnapshot dataSnapshot, String s) {
    
                }
    
                @Override
                public void onCancelled(DatabaseError databaseError) {
    
                }
            });
        }
    }
    &#13;
    &#13;
    &#13;

1 个答案:

答案 0 :(得分:1)

嗯,使用firebase在listview(或recyclerview)中显示数据的更优化方法是使用名为&#34; Firebase UI&#34; : https://github.com/firebase/FirebaseUI-Android

它是一个非常受欢迎的图书馆,我们也可以将其称为官方图书馆。按照自述文件中的简单步骤进行操作,你会发现它很容易使用。

关于图片的第二个问题,当然可以做到!您只需将图片的链接放在Firebase信息中心中,然后使用库将其链接到代码中,其中一个名为&#34; Picasso&#34; : http://square.github.io/picasso/

只需按照那里的说明操作,或按照YouTube上的简单视频或其他内容进行操作。