Prerequisite: How to Connect Android App with Back4App?
Back4App is an online database providing platform that provides us services with which we can manage the data of our app inside the database. This is a series of 4 articles in which we are going to perform the basic CRUD (Create, Read, Update, and Delete) operation with Back4App in Android. We are going to cover the following 4 articles in this series:
- How to Add Data to Back4App Database in Android?
- How to Read Data from Back4App Database in Android?
- How to Update Data in Back4App Database in Android?
- How to Delete Data in Back4App Database in Android?
What we are going to build in this article?
We will be building a simple application in which we will be adding our data to the Back4App database from our Android Application.
Step by Step Implementation
Step 1: Create a New Project
To create a new project in Android Studio please refer to How to Create/Start a New Project in Android Studio. Note that select Java as the programming language.
Step 2: Connect your app to Back4App
We have seen connecting our Android app to Back4App in the prerequisite article. So you can check out that article.
Step 3: Adding permissions to the internet in the AndroidManifest.xml file
Navigate to the app > AndroidManifest.xml and add the below code to it.
XML
< uses-permission android:name = "android.permission.INTERNET" /> |
Step 4: Working with the activity_main.xml file
Navigate to the app > res > layout > activity_main.xml and add the below code to that file. Below is the code for the activity_main.xml file.
XML
<? xml version = "1.0" encoding = "utf-8" ?> < LinearLayout android:layout_width = "match_parent" android:layout_height = "match_parent" android:orientation = "vertical" tools:context = ".MainActivity" > <!--Edit text for getting course Name--> < EditText android:id = "@+id/idEdtCourseName" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_marginStart = "10dp" android:layout_marginTop = "20dp" android:layout_marginEnd = "10dp" android:hint = "Course Name" android:importantForAutofill = "no" android:inputType = "text" /> <!--Edittext for getting course Duration--> < EditText android:id = "@+id/idEdtCourseDuration" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_marginStart = "10dp" android:layout_marginTop = "20dp" android:layout_marginEnd = "10dp" android:hint = "Course Duration in min" android:importantForAutofill = "no" android:inputType = "time" /> <!--Edittext for getting course Description--> < EditText android:id = "@+id/idEdtCourseDescription" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_marginStart = "10dp" android:layout_marginTop = "20dp" android:layout_marginEnd = "10dp" android:hint = "Course Description" android:importantForAutofill = "no" android:inputType = "text" /> <!--Button for adding your course to Firebase--> < Button android:id = "@+id/idBtnSubmitCourse" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_margin = "10dp" android:text = "Submit Course Details" android:textAllCaps = "false" /> </ LinearLayout > |
Step 5: Working with the MainActivity.java file
Go to the MainActivity.java file and refer to the following code. Below is the code for the MainActivity.java file. Comments are added inside the code to understand the code in more detail.
Java
import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import com.parse.ParseException; import com.parse.ParseObject; import com.parse.SaveCallback; public class MainActivity extends AppCompatActivity { // creating variables for our edit text private EditText courseNameEdt, courseDurationEdt, courseDescriptionEdt; // creating variable for button private Button submitCourseBtn; // creating a strings for storing our values from edittext fields. private String courseName, courseDuration, courseDescription; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); // initializing our edittext and buttons courseNameEdt = findViewById(R.id.idEdtCourseName); courseDescriptionEdt = findViewById(R.id.idEdtCourseDescription); courseDurationEdt = findViewById(R.id.idEdtCourseDuration); submitCourseBtn = findViewById(R.id.idBtnSubmitCourse); submitCourseBtn.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // getting data from edittext fields. courseName = courseNameEdt.getText().toString(); courseDescription = courseDescriptionEdt.getText().toString(); courseDuration = courseDurationEdt.getText().toString(); // validating the text fields if empty or not. if (TextUtils.isEmpty(courseName)) { courseNameEdt.setError( "Please enter Course Name" ); } else if (TextUtils.isEmpty(courseDescription)) { courseDescriptionEdt.setError( "Please enter Course Description" ); } else if (TextUtils.isEmpty(courseDuration)) { courseDurationEdt.setError( "Please enter Course Duration" ); } else { // calling method to add data to Firebase Firestore. addDataToDatabase(courseName, courseDescription, courseDuration); } } }); } private void addDataToDatabase(String courseName, String courseDescription, String courseDuration) { // Configure Query ParseObject courseList = new ParseObject( "courses" ); // on below line we are adding our data with their key value in our object. courseList.put( "courseName" , courseName); courseList.put( "courseDescription" , courseDescription); courseList.put( "courseDuration" , courseDuration); // after adding all data we are calling a // method to save our data in background. courseList.saveInBackground( new SaveCallback() { @Override public void done(ParseException e) { // inside on done method we are checking // if the error is null or not. if (e == null ) { // if the error is null we are displaying a simple toast message. Toast.makeText(MainActivity. this , "Data has been successfully added to Database" , Toast.LENGTH_SHORT).show(); // on below line we are setting our edit text fields to empty value. courseNameEdt.setText( "" ); courseDescriptionEdt.setText( "" ); courseDurationEdt.setText( "" ); } else { // if the error is not null we will be // displaying an error message to our user. Toast.makeText(getApplicationContext(), e.getMessage().toString(), Toast.LENGTH_LONG).show(); } } }); } } |
Now run your app and see the output of the app. You can get to see your data added in the Back4App console. Navigate to Back4App Console and then in the left navbar. You will get to see an option of courses, click on that option you will get to see the data which is added by you.
Output:
Below is the file structure in Android Studio after performing the Add operation: