0% found this document useful (0 votes)
27 views14 pages

Zodiac

Uploaded by

cpmac123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views14 pages

Zodiac

Uploaded by

cpmac123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

activity_main.

xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout 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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="30dp"
android:orientation="vertical"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:gravity="center"
android:text="Zodiac Sign"
android:textStyle="bold"
android:textSize="30sp"/>

<EditText
android:id="@+id/firstNameEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="First Name"
android:inputType="textPersonName"
android:textSize="20sp" />

<EditText
android:id="@+id/lastNameEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="Last Name"
android:inputType="textPersonName"
android:textSize="20sp" />

<EditText
android:id="@+id/birthEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:clickable="false"
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:hint="Date of Birth"
android:inputType="date"
android:textSize="20sp" />

<Button
android:id="@+id/zodiacButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Get Zodiac"
android:textSize="20sp" />

</LinearLayout>
activity_zodiac.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:backgroundTint="@color/white"
android:layout_margin="20dp"
android:padding="16dp">

<TextView
android:id="@+id/firstNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="First Name:"
android:textSize="20sp"/>

<TextView
android:id="@+id/lastNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Last Name:"
android:textSize="20sp"/>

<ImageView
android:id="@+id/zodiacImageView"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center"
android:layout_marginBottom="10dp" />

<TextView
android:id="@+id/zodiacDescriptionTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Zodiac Description"
android:textSize="18sp"
android:layout_marginBottom="20dp"/>

<Button
android:id="@+id/btnBack"
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Back to Main Page" />

</LinearLayout>
MainActivity.java

package com.example.zodiacapp;

import android.app.DatePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;

import androidx.appcompat.app.AppCompatActivity;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {


final Calendar myCalendar = Calendar.getInstance();
private EditText firstNameEditText, lastNameEditText, birthEditText;
private Button zodiacButton;

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

firstNameEditText = findViewById(R.id.firstNameEditText);
lastNameEditText = findViewById(R.id.lastNameEditText);
birthEditText = findViewById(R.id.birthEditText);
zodiacButton = findViewById(R.id.zodiacButton);

DatePickerDialog.OnDateSetListener date = new


DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int
day) {
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, month);
myCalendar.set(Calendar.DAY_OF_MONTH, day);
updateLabel();
}
};
birthEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DatePickerDialog(MainActivity.this, date,
myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});

zodiacButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,
ZodiacActivity.class);
intent.putExtra("firstName",
firstNameEditText.getText().toString());
intent.putExtra("lastName",
lastNameEditText.getText().toString());
intent.putExtra("day",
myCalendar.get(Calendar.DAY_OF_MONTH));
intent.putExtra("month", myCalendar.get(Calendar.MONTH) +
1); // Month is 0-based
intent.putExtra("year", myCalendar.get(Calendar.YEAR));
startActivity(intent);
}
});

private void updateLabel() {


String myFormat = "MM/dd/yyyy";
SimpleDateFormat dateFormat = new SimpleDateFormat(myFormat,
Locale.getDefault());
birthEditText.setText(dateFormat.format(myCalendar.getTime()));
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.mainPage) {
startActivity(new Intent(this, MainActivity.class));
return true;
} else if (itemId == R.id.recentResults) {
startActivity(new Intent(this, RecentResultsActivity.class));
return true;
} else if (itemId == R.id.aboutAuthor) {
startActivity(new Intent(this, AboutAuthorActivity.class));
return true;
} else if (itemId == R.id.exitApp) {
finish();
System.exit(0);
return true;
}
return super.onOptionsItemSelected(item);
}
}
ZodiacActivity.java

package com.example.zodiacapp;

import android.content.Intent;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class ZodiacActivity extends AppCompatActivity {

private TextView firstNameTextView, lastNameTextView,


zodiacDescriptionTextView;
private ImageView zodiacImageView;
private Button btnBack;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zodiac);

firstNameTextView = findViewById(R.id.firstNameTextView);
lastNameTextView = findViewById(R.id.lastNameTextView);
zodiacDescriptionTextView =
findViewById(R.id.zodiacDescriptionTextView);
zodiacImageView = findViewById(R.id.zodiacImageView);
btnBack = findViewById(R.id.btnBack);

String firstName = getIntent().getStringExtra("firstName");


String lastName = getIntent().getStringExtra("lastName");
int day = getIntent().getIntExtra("day", 1);
int month = getIntent().getIntExtra("month", 1);
int year = getIntent().getIntExtra("year", 2000);

firstNameTextView.setText("First Name: " + firstName);


lastNameTextView.setText("Last Name: " + lastName);

String zodiacSign = getZodiacSign(day, month);


String zodiacDescription = getZodiacDescription(zodiacSign);
int zodiacImage = getZodiacImage(zodiacSign);
zodiacDescriptionTextView.setText(zodiacDescription);
zodiacImageView.setImageResource(zodiacImage);

btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent back = new Intent(ZodiacActivity.this,
MainActivity.class);
startActivity(back);
}
});
}

private String getZodiacSign(int day, int month) {


// Simplified logic to determine zodiac sign based on date
if ((month == 1 && day >= 20) || (month == 2 && day <= 18)) {
return "Aquarius";
} else if ((month == 2 && day >= 19) || (month == 3 && day <= 20))
{
return "Pisces";
} else if ((month == 3 && day >= 21) || (month == 4 && day <= 19))
{
return "Aries";
} else if ((month == 4 && day >= 20) || (month == 5 && day <= 20))
{
return "Taurus";
} else if ((month == 5 && day >= 21) || (month == 6 && day <= 20))
{
return "Gemini";
} else if ((month == 6 && day >= 21) || (month == 7 && day <= 22))
{
return "Cancer";
} else if ((month == 7 && day >= 23) || (month == 8 && day <= 22))
{
return "Leo";
} else if ((month == 8 && day >= 23) || (month == 9 && day <= 22))
{
return "Virgo";
} else if ((month == 9 && day >= 23) || (month == 10 && day <= 22))
{
return "Libra";
} else if ((month == 10 && day >= 23) || (month == 11 && day <=
21)) {
return "Scorpio";
} else if ((month == 11 && day >= 22) || (month == 12 && day <=
21)) {
return "Sagittarius";
}
return "Capricorn";
}

private String getZodiacDescription(String zodiacSign) {


AssetManager am = getAssets();
try {
InputStream inputStream = am.open("zodiac_description.txt");
BufferedReader reader = new BufferedReader(new
InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith(zodiacSign)) {
while ((line = reader.readLine()) != null && !
line.isEmpty()) {
stringBuilder.append(line).append("\n");
}
break;
}
}
reader.close();
return stringBuilder.toString();
} catch (IOException e) {
e.printStackTrace();
return "Description not available.";
}
}

private int getZodiacImage(String zodiacSign) {


switch (zodiacSign) {
case "Aquarius":
return R.drawable.aquarius;
case "Pisces":
return R.drawable.pisces;
case "Taurus":
return R.drawable.taurus;
case "Cancer":
return R.drawable.cancer;
case "Libra":
return R.drawable.libra;
case "Virgo":
return R.drawable.virgo;
case "Gemini":
return R.drawable.gemini;
case "Sagittarius":
return R.drawable.sagittarius;
case "Scorpio":
return R.drawable.scorpio;
case "Leo":
return R.drawable.leo;
case "Aries":
return R.drawable.aries;
default:
return R.drawable.capricorn;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.mainPage) {
startActivity(new Intent(this, MainActivity.class));
return true;
} else if (itemId == R.id.recentResults) {
startActivity(new Intent(this, RecentResultsActivity.class));
return true;
} else if (itemId == R.id.aboutAuthor) {
startActivity(new Intent(this, AboutAuthorActivity.class));
return true;
} else if (itemId == R.id.exitApp) {
finish();
System.exit(0);
return true;
}
return super.onOptionsItemSelected(item);
}
}
main_menu.xml

<?xml version="1.0" encoding="utf-8"?>


<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/mainPage" android:title="Main Page"/>
<item android:id="@+id/recentResults" android:title="Recent Results"/>
<item android:id="@+id/aboutAuthor" android:title="About Author"/>
<item android:id="@+id/exitApp" android:title="Exit"/>
</menu>
Screenshots:

You might also like