MP1_CalebFontenot

master
Caleb Fontenot 2024-01-23 18:03:09 +07:00
parent 4587fe1846
commit 75ab169397
2010 changed files with 48871 additions and 0 deletions

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

@ -0,0 +1,142 @@
package com.calebfontenot.quizchapter2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button trueButton;
private Button falseButton;
private Button nextButton;
private Button previousButton;
private Button resetButton;
private TextView mQuestionTextView;
private TextView mScoreTextView;
private final String TAG = "QuizController";
private long answersCorrect = 0, answersIncorrect = 0;
private Question[] mQuestionBank = new Question[]
{
new Question(R.string.question_australia, true),
new Question(R.string.question_oceans, true),
new Question(R.string.question_mideast, false),
new Question(R.string.question_africa, false),
new Question(R.string.question_asia, true),
};
private int mCurrentIndex = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(TAG,"Calling onCreate...");
mQuestionTextView = (TextView)
findViewById(R.id.question_text_view);
int question =
mQuestionBank[mCurrentIndex].getmTextResId();
//mQuestionTextView.setText(question);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mQuestionTextView = findViewById(R.id.question_text_view);
trueButton = findViewById(R.id.true_button);
falseButton = findViewById(R.id.false_button);
nextButton = findViewById(R.id.next_button);
previousButton = findViewById(R.id.previous_button);
mScoreTextView = findViewById(R.id.score_counter);
resetButton = findViewById(R.id.reset_score_button);
updateScores();
trueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG,"Calling trueButton event listener");
Question q = mQuestionBank[MainActivity.this.mCurrentIndex];
if (q.ismAnswerTrue()) {
Toast.makeText(MainActivity.this, R.string.correct_toast, Toast.LENGTH_SHORT).show();
answersCorrect++;
updateScores();
} else {
Toast.makeText(MainActivity.this, R.string.incorrect_toast, Toast.LENGTH_SHORT).show();
answersIncorrect++;
updateScores();
}
}
});
falseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG,"Calling falseButton event listener");
Question q = mQuestionBank[MainActivity.this.mCurrentIndex];
if (!q.ismAnswerTrue()) {
Toast.makeText(MainActivity.this, R.string.correct_toast, Toast.LENGTH_SHORT).show();
answersCorrect++;
updateScores();
} else {
Toast.makeText(MainActivity.this, R.string.incorrect_toast, Toast.LENGTH_SHORT).show();
answersIncorrect++;
updateScores();
}
}
});
View.OnClickListener nextQuestionHandler = new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG,"Calling nextButton event listener");
updateScores();
Question q = mQuestionBank[MainActivity.this.mCurrentIndex];
int idOfQuestion = q.getmTextResId();
if(MainActivity.this.mCurrentIndex == mQuestionBank.length - 1) {
MainActivity.this.mCurrentIndex = 0;
} else {
MainActivity.this.mCurrentIndex++;
}
Log.i(TAG, "mCurrentIndex is: " + mCurrentIndex);
MainActivity.this.mQuestionTextView.setText(idOfQuestion);
}
};
nextButton.setOnClickListener(nextQuestionHandler);
mQuestionTextView.setOnClickListener(nextQuestionHandler);
previousButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i(TAG, "Calling previousButton event listener");
updateScores();
Question q = mQuestionBank[MainActivity.this.mCurrentIndex];
int idOfQuestion = q.getmTextResId();
if (MainActivity.this.mCurrentIndex <= 0) {
MainActivity.this.mCurrentIndex = mQuestionBank.length - 1;
} else {
MainActivity.this.mCurrentIndex--;
}
Log.i(TAG, "mCurrentIndex is: " + mCurrentIndex);
MainActivity.this.mQuestionTextView.setText(idOfQuestion);
}
});
resetButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i(TAG, "Resetting scores!");
answersCorrect = answersIncorrect = 0;
updateScores();
}
});
}
private void updateScores() {
String score = "Answers correct: " + answersCorrect + "\n"
+ "Answers incorrect: " + answersIncorrect + "\n"
+ "Question number: " + (MainActivity.this.mCurrentIndex + 1) + " out of " + mQuestionBank.length;
Log.i(TAG, score);
MainActivity.this.mScoreTextView.setText(score);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/question_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="24dp"
android:text="Tap next or previous to begin."/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="130px"
android:gravity="center">
<Button
android:id="@+id/true_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/true_button" />
<Button
android:id="@+id/false_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/false_button" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="130px"
android:gravity="center">
<Button
android:id="@+id/previous_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/previous_button"
android:drawableLeft="@drawable/arrow_left"
android:drawablePadding="4dp"
/>
<Button
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next_button"
android:drawableRight="@drawable/arrow_right"
android:drawablePadding="4dp"
/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/score_counter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="24dp"
android:text=""
/>
</LinearLayout>
<Button
android:id="@+id/reset_score_button"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:text="Reset Score"/>
</RelativeLayout>

@ -0,0 +1,24 @@
<resources>
<string name="app_name">MP1_CalebFontenot</string>
<string name="true_button">True</string>
<string name="false_button">False</string>
<string name="next_button">Next</string>
<string name="previous_button">Previous</string>
<string name="correct_toast">Correct!</string>
<string name="incorrect_toast">Sorry, try again.</string>
<string name="question_australia">Canberra is the
capital of Australia.</string>
<string name="question_oceans">The Pacific Ocean is
larger than
the Atlantic Ocean.</string>
<string name="question_mideast">The Suez Canal
connects the Red Sea
and the Indian Ocean.</string>
<string name="question_africa">The source of the Nile
River is in Egypt.</string>
<string name="question_americas">The Amazon River is
the longest river
in the Americas.</string>
<string name="question_asia">Lake Baikal is the world\'s oldest and deepest freshwater lake.</string>
</resources>

@ -0,0 +1,5 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '8.2.2' apply false
id 'com.android.library' version '8.2.2' apply false
}

@ -0,0 +1,17 @@
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "MP1_CalebFontenot"
include ':app'
include ':app'

@ -0,0 +1,15 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<value>
<entry key="app">
<State />
</entry>
</value>
</component>
</project>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="/usr/share/java/gradle" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>

Some files were not shown because too many files have changed in this diff Show More