In: Computer Science
Android Studio. Java. Please create an application that
-> An activity that allows user to enter name, gender, date
of birth, state of residence (selected from a pre-defined list: CA,
AZ, NV, OR), email address and favorite website.
This activity has a button "Show Data" that displays detail
entered
activity_main.xml
<?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">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:text="Details Saver"
android:textColor="@android:color/black"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/nameField"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginTop="100dp"
android:layout_marginEnd="50dp"
android:ems="10"
android:hint="Enter Name"
android:inputType="textPersonName"
android:padding="16dp"
android:textAlignment="center"
android:textColor="@android:color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<RadioGroup
android:id="@+id/radioGroup2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="32dp"
android:orientation="horizontal"
android:padding="16dp"
android:textAlignment="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nameField">
<RadioButton
android:id="@+id/femaleRB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Female" />
<RadioButton
android:id="@+id/maleRB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Male" />
</RadioGroup>
<EditText
android:id="@+id/dobField"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:ems="10"
android:enabled="true"
android:hint="Date of birth"
android:inputType="textPersonName"
android:padding="16dp"
android:textAlignment="center"
android:textColor="@android:color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/radioGroup2" />
<Spinner
android:id="@+id/statesSpinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="100dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="100dp"
android:padding="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/dobField" />
<Button
android:id="@+id/showDataButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="100dp"
android:layout_marginEnd="32dp"
android:backgroundTint="#2196F3"
android:elevation="10dp"
android:padding="16dp"
android:text="Show Data"
android:textColor="@android:color/white"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statesSpinner" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.app.DatePickerDialog;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private EditText nameField;
private RadioButton femaleRb, maleRB;
private EditText dobField;
private Spinner statesSpinner;
private Button showDataButton;
private DatePickerDialog.OnDateSetListener mDateSetListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameField = findViewById(R.id.nameField);
femaleRb = findViewById(R.id.femaleRB);
maleRB = findViewById(R.id.maleRB);
dobField = findViewById(R.id.dobField);
dobField.setKeyListener(null);
dobField.setCursorVisible(false);
dobField.setFocusable(false);
statesSpinner = findViewById(R.id.statesSpinner);
showDataButton = findViewById(R.id.showDataButton);
dobField.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dpd = new DatePickerDialog(MainActivity.this,
android.R.style.Theme_Holo_Light_Dialog_MinWidth,
mDateSetListener,
year, month, day);
dpd.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dpd.show();
}
});
mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
month += 1;
dobField.setText(dayOfMonth + " - " + month + " - " + year);
}
};
// populate the spinner for States
List<String> states = new ArrayList<>();
states.add("CA");
states.add("AZ");
states.add("NV");
states.add("OR");
ArrayAdapter<String> spinnerArrayAdapter =
new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_spinner_item, states);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
statesSpinner.setAdapter(spinnerArrayAdapter);
// show data button action listener
showDataButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameField.getText().toString();
String gender = "";
if(!femaleRb.isChecked() && !maleRB.isChecked())
Toast.makeText(MainActivity.this, "Please select your gender", Toast.LENGTH_SHORT).show();
else
{
if(femaleRb.isChecked())
gender = "Female";
else
gender = "Male";
}
String dob = dobField.getText().toString();
String state = statesSpinner.getSelectedItem().toString();
if(TextUtils.isEmpty(name) || TextUtils.isEmpty(gender) ||TextUtils.isEmpty(dob)
|| TextUtils.isEmpty(state))
Toast.makeText(MainActivity.this, "All fields are mandatory", Toast.LENGTH_SHORT).show();
else
{
Intent showDataIntent = new Intent(MainActivity.this, ShowDataActivity.class);
showDataIntent.putExtra("name", name);
showDataIntent.putExtra("gender", gender);
showDataIntent.putExtra("dob", dob);
showDataIntent.putExtra("state", state);
startActivity(showDataIntent);
}
}
});
}
}
activity_show_data.xml
<?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=".ShowDataActivity">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="100dp"
android:layout_marginTop="50dp"
android:layout_marginEnd="100dp"
android:text="Data Viewer"
android:textColor="@android:color/black"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/nampPlace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginTop="130dp"
android:layout_marginEnd="50dp"
android:text="Your Name:"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<TextView
android:id="@+id/genderPlace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="50dp"
android:text="Your Gender:"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nampPlace" />
<TextView
android:id="@+id/dobPlace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="50dp"
android:text="Your date of birth:"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/genderPlace" />
<TextView
android:id="@+id/statePlace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="50dp"
android:text="Your state of resisdence:"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/dobPlace" />
<Button
android:id="@+id/backButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:backgroundTint="#03A9F4"
android:padding="16dp"
android:text="back"
android:textAlignment="center"
android:textColor="@android:color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statePlace" />
</androidx.constraintlayout.widget.ConstraintLayout>
ShowDataActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class ShowDataActivity extends AppCompatActivity {
private TextView namePlace, genderPlace, dobPlace, statePlace;
private Button backButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_data);
namePlace = findViewById(R.id.nampPlace);
genderPlace = findViewById(R.id.genderPlace);
dobPlace = findViewById(R.id.dobPlace);
statePlace = findViewById(R.id.statePlace);
backButton = findViewById(R.id.backButton);
String name = getIntent().getStringExtra("name");
String gender = getIntent().getStringExtra("gender");
String dob = getIntent().getStringExtra("dob");
String state = getIntent().getStringExtra("state");
namePlace.setText("Your name is: " + name);
genderPlace.setText("Your gender is: " + gender);
dobPlace.setText("Your date of birth is: " + dob);
statePlace.setText("Your state of residence is: " + state);
backButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
******************************************************************** SCREENSHOT *******************************************************

