Как получить несколько данных в Firebase ListView? - PullRequest
0 голосов
/ 05 октября 2019

Я новичок в программировании, и я пытаюсь получить эти данные, отправленные Raspberry Pi из Arduino. Как вы думаете, в чем проблема?

! Изображение базы данных Firebase Я пробовал несколько обучающих видео и ответов на похожие проблемы на этом сайте, но все еще не могу получить данные.

Это текущий код:

public class ph extends AppCompatActivity {

    ArrayList <String> list;
    ArrayAdapter <String> adapter;
    phlevel phlvl;

    private static final String TAG = "phlevel";


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

        phlvl = new phlevel();
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference mRef = database.getReference("phlevel");
        final ListView mListView = (ListView) findViewById(R.id.listView);
        list = new ArrayList<>();
        adapter = new ArrayAdapter<String>(this,R.layout.activity_ph,R.id.phlevelinfo,list);


        mRef.addChildEventListener(new ChildEventListener() {

            @Override
            public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

            }

            @Override
            public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
            {
                if(dataSnapshot.child("date").exists() &&
                        dataSnapshot.child("time").exists() &&
                        dataSnapshot.child("value").exists()) {
                    Log.d(TAG,"onChildChanged: " + dataSnapshot.toString());
                }

            }

Это код уровня:

public class phlevel {

    private String date;
    private String time;
    private String value;

    public phlevel(String date, String time, String value) {
        this.date = date;
        this.time = time;
        this.value = value;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

А это XML для ph-операции:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ph">

    <TextView
        android:id="@+id/phlevelinfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="30dp"
        android:text="Displaying pH Level"
        android:textSize="30sp"
        tools:ignore="HardcodedText" />

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="30dp" />


</LinearLayout>

Я ожидаю, что значения «дата, время и значение» из базы данных будут получены и перечислены в ListView. Вместо этого приложение не показывает ничего, кроме текста «Отображение уровня pH». Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...