Android Volley Post Request with parameters Example using StringRequest and Show server response echo message in App on successfully submitting.
In this tutorial we would going to use Android’s most famous library known as Volley .This library is freely available for every developer. You can do multiple network data transmitting work using Volley. So here is the complete step by step tutorial for Android Volley Insert Multiple Data into MySQL Database Tutorial.
Follow the below steps for Android Volley Tutorial :-
1. Create a database in PhpMyAdmin.
2. Create a new table in database name as UserInfo with four columns id, first_name, last_name, email . Set id as primary key.
3. Upload the below PHP script with your database configuration. In DatabaseConfig.php file you have to set your server PhpMyAdmin HostName, Host Password, Host User, Database Name.
Code for DatabaseConfig.php file.
<?php //Define your host here. $HostName = "localhost"; //Define your database username here. $HostUser = "id302300_android_examples_data_user"; //Define your database password here. $HostPass = "1234567890"; //Define your database name here. $DatabaseName = "id302300_android_examples"; ?>
Code for insert_record.php file.
<?php include 'DatabaseConfig.php'; $con = mysqli_connect($HostName,$HostUser,$HostPass,$DatabaseName); $f_name = $_POST['first_name']; $l_name = $_POST['last_name']; $email = $_POST['email']; $Sql_Query = "insert into UserInfo (first_name,last_name,email) values ('$f_name','$l_name','$email')"; if(mysqli_query($con,$Sql_Query)){ echo 'Data Inserted Successfully'; } else{ echo 'Try Again'; } mysqli_close($con); ?>
4. Start a new android application development project.
5. Add internet permission in AndroidManifest.xml file.
<uses-permission android:name="android.permission.INTERNET"/>
6. Add compile ‘com.android.volley:volley:1.0.0’ library file in build.gradle(Module:app) file. So open it.
7. Add compile ‘com.android.volley:volley:1.0.0’ inside dependencies block.
8. Create Three EditText and one button in activity layout file.
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:hint="First Name" android:gravity="center" android:ems="10" android:id="@+id/editTextFirstName" android:layout_marginTop="30dp" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:hint="Last Name" android:gravity="center" android:ems="10" android:id="@+id/editTextLastName" android:layout_below="@+id/editTextFirstName" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textEmailAddress" android:ems="10" android:id="@+id/editTextEmail" android:layout_below="@+id/editTextLastName" android:hint="Email" android:gravity="center"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Insert Record on Server" android:id="@+id/ButtonInsert" android:layout_below="@+id/editTextEmail" android:layout_centerHorizontal="true" />
9. Create button, EditText, RequestQueue, String, ProgressDialog and HttpUrl , button objects in MainActivity.java file.
// Creating EditText. EditText FirstName, LastName, Email ; // Creating button; Button InsertButton; // Creating Volley RequestQueue. RequestQueue requestQueue; // Create string variable to hold the EditText Value. String FirstNameHolder, LastNameHolder, EmailHolder ; // Creating Progress dialog. ProgressDialog progressDialog; // Storing server url into String variable. String HttpUrl = "https://android-examples.000webhostapp.com/insert_record.php";
10. Assign ID’s to all of them.
// Assigning ID's to EditText. FirstName = (EditText) findViewById(R.id.editTextFirstName); LastName = (EditText) findViewById(R.id.editTextLastName); Email = (EditText) findViewById(R.id.editTextEmail); // Assigning ID's to Button. InsertButton = (Button) findViewById(R.id.ButtonInsert); // Creating Volley newRequestQueue . requestQueue = Volley.newRequestQueue(MainActivity.this); progressDialog = new ProgressDialog(MainActivity.this);
11. Creating method to get value from EditText.
public void GetValueFromEditText(){ FirstNameHolder = FirstName.getText().toString().trim(); LastNameHolder = LastName.getText().toString().trim(); EmailHolder = Email.getText().toString().trim(); }
12. Adding click listener to button.
InsertButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } });
13. Creating StringRequest method.
// Creating string request with post method. StringRequest stringRequest = new StringRequest(Request.Method.POST, HttpUrl, new Response.Listener<String>() { @Override public void onResponse(String ServerResponse) { // Hiding the progress dialog after all task complete. progressDialog.dismiss(); // Showing response message coming from server. Toast.makeText(MainActivity.this, ServerResponse, Toast.LENGTH_LONG).show(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { // Hiding the progress dialog after all task complete. progressDialog.dismiss(); // Showing error message if something goes wrong. Toast.makeText(MainActivity.this, volleyError.toString(), Toast.LENGTH_LONG).show(); } }) { @Override protected Map<String, String> getParams() { // Creating Map String Params. Map<String, String> params = new HashMap<String, String>(); // Adding All values to Params. params.put("first_name", FirstNameHolder); params.put("last_name", LastNameHolder); params.put("email", EmailHolder); return params; } };
14. Calling RequestQueue to call the stringRequest method.
// Creating RequestQueue. RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this); // Adding the StringRequest object into requestQueue. requestQueue.add(stringRequest);
15. Calling StringRequest and GetValueFromEditText() method inside the button click scope.
// Adding click listener to button. InsertButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Showing progress dialog at user registration time. progressDialog.setMessage("Please Wait, We are Inserting Your Data on Server"); progressDialog.show(); // Calling method to get value from EditText. GetValueFromEditText(); // Creating string request with post method. StringRequest stringRequest = new StringRequest(Request.Method.POST, HttpUrl, new Response.Listener<String>() { @Override public void onResponse(String ServerResponse) { // Hiding the progress dialog after all task complete. progressDialog.dismiss(); // Showing response message coming from server. Toast.makeText(MainActivity.this, ServerResponse, Toast.LENGTH_LONG).show(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { // Hiding the progress dialog after all task complete. progressDialog.dismiss(); // Showing error message if something goes wrong. Toast.makeText(MainActivity.this, volleyError.toString(), Toast.LENGTH_LONG).show(); } }) { @Override protected Map<String, String> getParams() { // Creating Map String Params. Map<String, String> params = new HashMap<String, String>(); // Adding All values to Params. params.put("first_name", FirstNameHolder); params.put("last_name", LastNameHolder); params.put("email", EmailHolder); return params; } }; // Creating RequestQueue. RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this); // Adding the StringRequest object into requestQueue. requestQueue.add(stringRequest); } });
Complete source code :
Code for MainActivity.java file.