I am using the following Android code and that is working fine, there is no issue but I have a question.
How the variables name (such as: name,course,duration) converted as text for node creation as give in the following image:
The XML code:
<?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"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
tools:context=".MainActivity">
<!-- android:id="@+id/btn"-->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="process"
android:text="save to database"
android:textSize="25dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.491"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.66"
tools:ignore="MissingConstraints,OnClick" />
<EditText
android:id="@+id/t2"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="enter your name"
android:textColor="#000"
android:textSize="25dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.172"
tools:ignore="MissingConstraints" />
<EditText
android:id="@+id/t3"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="enter your course"
android:textColor="#000"
android:textSize="25dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.522"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.298"
tools:ignore="MissingConstraints" />
<EditText
android:id="@+id/t4"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="enter your duration"
android:textColor="#000"
android:textSize="25dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.429"
tools:ignore="MissingConstraints" />
<EditText
android:id="@+id/t1"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="enter your roll number"
android:textColor="#000"
android:textSize="25dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.041"
tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
Code of MainActivity.java:
package com.example.application_for_curd;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class MainActivity extends AppCompatActivity {
EditText t1,t2,t3,t4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void process(View v){
t1 = findViewById(R.id.t1);
t2 = findViewById(R.id.t2);
t3 = findViewById(R.id.t3);
t4 = findViewById(R.id.t4);
String roll = t1.getText().toString().trim();
String name = t2.getText().toString().trim();
String course = t3.getText().toString().trim();
String duration = t4.getText().toString().trim();
dataholder obj = new dataholder(name,course,duration);
FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference node = db.getReference("students");
node.child(roll).setValue(obj);
t1.setText("");
t2.setText("");
t3.setText("");
t4.setText("");
Toast.makeText(getApplicationContext(),"values inserted", Toast.LENGTH_LONG).show();
}
}
code for dataholder.java:
package com.example.application_for_curd;
public class dataholder {
String name,course,duration;
public dataholder(String name, String course, String duration) {
this.name = name;
this.course = course;
this.duration = duration;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public String getDuration() {
return duration;
}
public void setDuration(String duration) {
this.duration = duration;
}
}
How the variables name going to be converted as the text for the creation of child nodes, that can be seen by an attached image which consists of child node named as name, course, duration.