Невозможно сохранить мои данные в базе данных в Android - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу получить 4 строки из Edittext и сохранить их в базе данных реального времени firebase, для всех разрешений в firebase установлено значение true. После нажатия кнопки никакие данные не сохраняются в базе данных. Я не могу отладить его

ниже указан мой КОД

activity_main

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/SOURCE"
        android:layout_width="284dp"
        android:layout_height="49dp"
        android:layout_marginTop="32dp"
        android:hint="SOURCE"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.464"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.136" />

    <EditText
        android:id="@+id/DESTINATION"
        android:layout_width="276dp"
        android:layout_height="51dp"
        android:layout_marginTop="108dp"
        android:hint="DESTINATION"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.466"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.268" />

    <EditText
        android:id="@+id/TIME"
        android:layout_width="276dp"
        android:layout_height="51dp"
        android:layout_marginTop="196dp"
        android:hint="TIME"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.496"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.389" />

    <EditText
        android:id="@+id/FARE"
        android:layout_width="276dp"
        android:layout_height="51dp"
        android:layout_marginTop="268dp"
        android:hint="FARE"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.525"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/SWITCH"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="312dp"
        android:layout_marginBottom="296dp"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.532"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

мой файл MainActivity

package com.example.rupam;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import androidx.appcompat.app.AppCompatActivity;

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {


    EditText source;
    EditText destination;
    EditText time;
    EditText fare;
    Button save;

    //////////////////////////////

    ///////Firebase ref//////////
    DatabaseReference databaseReference;
    ////////////////////////////

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

        ////////Find view by id section//////////

        source = (EditText) findViewById(R.id.SOURCE);
        destination = (EditText) findViewById(R.id.DESTINATION);
        time = (EditText) findViewById(R.id.TIME);
        fare = (EditText) findViewById(R.id.FARE);
        save = (Button) findViewById(R.id.SWITCH);

        /////////////////////////////////////////

        databaseReference = FirebaseDatabase.getInstance().getReference().child("USERS");

        ////////////On button click//////////////

        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
    }

    public void saveData() {
        String src2 = source.getText().toString().trim();
        String dst2 = destination.getText().toString().trim();
        String tm2 = time.getText().toString().trim();
        String fr2 = fare.getText().toString().trim();

        SaveData saveData = new SaveData(src2, dst2, tm2, fr2);

        databaseReference.setValue(saveData);

    }
}

Savedata (класс)

package com.example.rupam;

public class SaveData {

    ///Take 4 String////////
    String src;
    String dst;
    String tm;
    String fr;
    //////////////////////


    public String getSrc() {
        return src;
    }

    public void setSrc(String src) {
        this.src = src;
    }

    public String getDst() {
        return dst;
    }

    public void setDst(String dst) {
        this.dst = dst;
    }

    public String getTm() {
        return tm;
    }

    public void setTm(String tm) {
        this.tm = tm;
    }

    public String getFr() {
        return fr;
    }

    public void setFr(String fr) {
        this.fr = fr;
    }

    public SaveData(String src, String dst, String tm, String fr) {
        this.src = src;
        this.dst = dst;
        this.tm = tm;
        this.fr = fr;
    }
}

мой файл Mainfest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.rupam">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

, пожалуйста, помогите мне, где я не прав, в сборке нет ошибки

Ответы [ 3 ]

0 голосов
/ 25 апреля 2020

Вы делаете небольшую ошибку, но не волнуйтесь. Когда вы устанавливаете метод save.setOnClickListener , это означает, что вы не можете использовать метод saveData () в этих методах. Таким образом, вы должны поместить свой метод saveData () save.setOnClickListener :

Ваша ошибка:

save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

Но исправлено:

save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           saveData();
        }
    });
0 голосов
/ 25 апреля 2020

Я попробовал ваш код упоминания, согласно вашему коду вы не вызываете saveData (); метод в любом месте. поэтому для решения этой проблемы вызовите saveData (); метод на вашей кнопке сохранения, нажмите как это.

save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    // Call method which storing values
    saveData();
}
});

Если у вас есть какие-либо вопросы относительно этого ответа, поэтому добавьте свой запрос в комментарии

0 голосов
/ 25 апреля 2020

Вы onClick() метод пуст. Вы должны позвонить saveData() здесь.

Поэтому измените с:

save.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    }
});

на

save.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // Call method which storing values
        saveData();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...