Skip to content

Instantly share code, notes, and snippets.

@novembergave
Last active February 17, 2017 22:00
Show Gist options
  • Save novembergave/ad19589c012cf3878c390176752c3989 to your computer and use it in GitHub Desktop.
Save novembergave/ad19589c012cf3878c390176752c3989 to your computer and use it in GitHub Desktop.
Learn Hiragana (Quiz Activity)
package com.novembergave.apps.learnhiragana;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
public class QuizActivity extends AppCompatActivity {
/**
* String tags for OnSave and OnRestore
*/
static final String QUIZ_SCORE = "quizScore";
static final String QUESTIONS_SET = "questionsSet";
static final String QUESTION_MCQ = "questionMCQ";
static final String QUESTION_TYPE = "questionType";
static final String BUTTON_ONE = "buttonOne";
static final String BUTTON_TWO = "buttonTwo";
static final String BUTTON_THREE = "buttonThree";
static final String BUTTON_FOUR = "buttonFour";
static final String HIRAGANA_LIST = "hiraganaList";
static final String ROMANJI_LIST = "romanjiList";
static final String QUIZ_COMPLETED = "quizCompleted";
static final String TYPE_SHOWING = "quizType";
static final String CORRECT_BUTTON = "correctButton";
static final String QUESTION_COMPLETED = "questionCompleted";
private static final Random rgenerator = new Random();
TextView mQuestionTextView;
Button mButtonOne;
Button mButtonTwo;
Button mButtonThree;
Button mButtonFour;
ViewGroup mMCQGroup;
ViewGroup mTypeGroup;
TextView mTypeQuestionTextView;
EditText mEditText;
Button mSubmit;
ViewGroup mScoreGroup;
TextView mScoreText;
TextView mCommentText;
TextView mEditTextAnswer;
String question;
String answerOne;
String answerTwo;
String answerThree;
String answerFour;
String typeQuestion;
String answerType;
int mQuizScore = 0;
int mTotalNumberOfMCQs = 9;
int mNumberOfMCQsSet = 0;
int mHighScore = 10;
int mMiddleScore = 6;
int correctButton;
Boolean questionCompleted = false;
Boolean quizCompleted = false;
Boolean typeState = false;
ArrayList<String> hiraganaList;
ArrayList<String> romanjiList;
ArrayList<String> hiraganaWordList;
ArrayList<String> romanjiWordList;
private final Handler handlerTimer = new Handler();
/**
* onClickListener to get the answers for the final Type question
*/
private View.OnClickListener checkTypeOnClick = new View.OnClickListener() {
@Override
public void onClick(View view) {
checkTypeAnswers();
quizCompleted = true;
handlerTimer.postDelayed(new Runnable() {
public void run() {
mTypeGroup.setVisibility(View.GONE);
mScoreGroup.setVisibility(View.VISIBLE);
mScoreText.setText(String.valueOf(mQuizScore));
setCompletionSummary();
}
}, 3000);
}
};
/**
* onClickListener for setting the MCQ button as incorrect
*/
private View.OnClickListener checkWrongMCQScore = new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(QuizActivity.this, getString(R.string.wrong_answer), Toast.LENGTH_SHORT).show();
showCorrectMCQAnswer();
questionCompleted = true;
handlerTimer.postDelayed(new Runnable() {
public void run() {
if (mNumberOfMCQsSet != mTotalNumberOfMCQs) {
getMCQuestions();
} else {
mMCQGroup.setVisibility(View.GONE);
mTypeGroup.setVisibility(View.VISIBLE);
setTypeQandA();
}
}
}, 5000);
}
;
};
/**
* onClickListener for setting the MCQ button as correct
*/
private View.OnClickListener checkCorrectMCQScore = new View.OnClickListener() {
@Override
public void onClick(View view) {
mQuizScore++;
Toast.makeText(QuizActivity.this, getString(R.string.correct_answer), Toast.LENGTH_SHORT).show();
showCorrectMCQAnswer();
questionCompleted = true;
handlerTimer.postDelayed(new Runnable() {
public void run() {
if (mNumberOfMCQsSet != mTotalNumberOfMCQs) {
getMCQuestions();
} else {
mMCQGroup.setVisibility(View.GONE);
mTypeGroup.setVisibility(View.VISIBLE);
setTypeQandA();
}
}
}, 2000);
}
;
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quiz);
mMCQGroup = (ViewGroup) findViewById(R.id.quiz_mcq);
mQuestionTextView = (TextView) findViewById(R.id.question_textview);
mButtonOne = (Button) findViewById(R.id.button_one);
mButtonTwo = (Button) findViewById(R.id.button_two);
mButtonThree = (Button) findViewById(R.id.button_three);
mButtonFour = (Button) findViewById(R.id.button_four);
mTypeGroup = (ViewGroup) findViewById(R.id.quiz_type);
mTypeQuestionTextView = (TextView) findViewById(R.id.type_question_textview);
mEditText = (EditText) findViewById(R.id.edit_text);
mSubmit = (Button) findViewById(R.id.submit_button);
mScoreGroup = (ViewGroup) findViewById(R.id.final_score_view);
mScoreText = (TextView) findViewById(R.id.score_text_view);
mCommentText = (TextView) findViewById(R.id.comment_text_view);
mEditTextAnswer = (TextView) findViewById(R.id.edit_text_answer);
String[] mHiraganaString = getResources().getStringArray(R.array.hiragana_array);
String[] mRomanjiString = getResources().getStringArray(R.array.romanji_array);
String[] mHiraganaWordString = getResources().getStringArray(R.array.hiragana_words);
String[] mRomanjiWordString = getResources().getStringArray(R.array.romanji_words);
hiraganaList = new ArrayList<String>(Arrays.asList(mHiraganaString));
romanjiList = new ArrayList<String>(Arrays.asList(mRomanjiString));
hiraganaWordList = new ArrayList<String>(Arrays.asList(mHiraganaWordString));
romanjiWordList = new ArrayList<String>(Arrays.asList(mRomanjiWordString));
if (savedInstanceState != null) {
onRestoreInstanceState(savedInstanceState);
if (quizCompleted) {
mMCQGroup.setVisibility(View.GONE);
mTypeGroup.setVisibility(View.GONE);
mScoreGroup.setVisibility(View.VISIBLE);
mScoreText.setText(String.valueOf(mQuizScore));
setCompletionSummary();
} else if (typeState) {
mMCQGroup.setVisibility(View.GONE);
mTypeGroup.setVisibility(View.VISIBLE);
mTypeQuestionTextView.setText(typeQuestion);
if (questionCompleted) {
mEditTextAnswer.setText(romanjiWordList.get(hiraganaWordList.indexOf(typeQuestion)));
mEditText.setVisibility(View.GONE);
mEditTextAnswer.setVisibility(View.VISIBLE);
handlerTimer.postDelayed(new Runnable() {
public void run() {
mTypeGroup.setVisibility(View.GONE);
mScoreGroup.setVisibility(View.VISIBLE);
mScoreText.setText(String.valueOf(mQuizScore));
setCompletionSummary();
}
}, 2000);
} else {
mSubmit.setOnClickListener(checkTypeOnClick);
}
} else {
mMCQGroup.setVisibility(View.VISIBLE);
mTypeGroup.setVisibility(View.GONE);
mQuestionTextView.setText(question);
mButtonOne.setText(answerOne);
mButtonTwo.setText(answerTwo);
mButtonThree.setText(answerThree);
mButtonFour.setText(answerFour);
if (questionCompleted) {
showCorrectMCQAnswer();
handlerTimer.postDelayed(new Runnable() {
public void run() {
getMCQuestions();
}
}, 2000);
} else {
checkWhichButtonIsCorrect();
}
}
} else {
getMCQuestions();
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putBoolean(QUESTION_COMPLETED, questionCompleted);
outState.putBoolean(QUIZ_COMPLETED, quizCompleted);
outState.putBoolean(TYPE_SHOWING, typeState);
outState.putInt(QUIZ_SCORE, mQuizScore);
outState.putInt(QUESTIONS_SET, mNumberOfMCQsSet);
if (mMCQGroup.getVisibility() == View.VISIBLE) {
outState.putInt(CORRECT_BUTTON, correctButton);
outState.putString(QUESTION_MCQ, question);
outState.putString(BUTTON_ONE, answerOne);
outState.putString(BUTTON_TWO, answerTwo);
outState.putString(BUTTON_THREE, answerThree);
outState.putString(BUTTON_FOUR, answerFour);
} else if (mTypeGroup.getVisibility() == View.VISIBLE) {
outState.putString(QUESTION_TYPE, typeQuestion);
}
outState.putStringArrayList(HIRAGANA_LIST, hiraganaList);
outState.putStringArrayList(ROMANJI_LIST, romanjiList);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
questionCompleted = savedInstanceState.getBoolean(QUESTION_COMPLETED);
quizCompleted = savedInstanceState.getBoolean(QUIZ_COMPLETED);
typeState = savedInstanceState.getBoolean(TYPE_SHOWING);
mQuizScore = savedInstanceState.getInt(QUIZ_SCORE);
mNumberOfMCQsSet = savedInstanceState.getInt(QUESTIONS_SET);
hiraganaList = savedInstanceState.getStringArrayList(HIRAGANA_LIST);
romanjiList = savedInstanceState.getStringArrayList(ROMANJI_LIST);
if (typeState) {
typeQuestion = savedInstanceState.getString(QUESTION_TYPE);
} else {
correctButton = savedInstanceState.getInt(CORRECT_BUTTON);
question = savedInstanceState.getString(QUESTION_MCQ);
answerOne = savedInstanceState.getString(BUTTON_ONE);
answerTwo = savedInstanceState.getString(BUTTON_TWO);
answerThree = savedInstanceState.getString(BUTTON_THREE);
answerFour = savedInstanceState.getString(BUTTON_FOUR);
}
}
private void checkWhichButtonIsCorrect() {
switch (correctButton) {
case 1:
mButtonOne.setOnClickListener(checkCorrectMCQScore);
mButtonTwo.setOnClickListener(checkWrongMCQScore);
mButtonThree.setOnClickListener(checkWrongMCQScore);
mButtonFour.setOnClickListener(checkWrongMCQScore);
break;
case 2:
mButtonOne.setOnClickListener(checkWrongMCQScore);
mButtonTwo.setOnClickListener(checkCorrectMCQScore);
mButtonThree.setOnClickListener(checkWrongMCQScore);
mButtonFour.setOnClickListener(checkWrongMCQScore);
break;
case 3:
mButtonOne.setOnClickListener(checkWrongMCQScore);
mButtonTwo.setOnClickListener(checkWrongMCQScore);
mButtonThree.setOnClickListener(checkCorrectMCQScore);
mButtonFour.setOnClickListener(checkWrongMCQScore);
break;
case 4:
mButtonOne.setOnClickListener(checkWrongMCQScore);
mButtonTwo.setOnClickListener(checkWrongMCQScore);
mButtonThree.setOnClickListener(checkWrongMCQScore);
mButtonFour.setOnClickListener(checkCorrectMCQScore);
break;
}
}
private void getHiraganaQ() {
int randomWordLocation = rgenerator.nextInt(hiraganaList.size() - 1);
int secondRandomWordLocation = rgenerator.nextInt(romanjiList.size() - 1);
int thirdRandomWordLocation = rgenerator.nextInt(romanjiList.size() - 1);
int fourthRandomWordLocation = rgenerator.nextInt(romanjiList.size() - 1);
if (secondRandomWordLocation == thirdRandomWordLocation ||
secondRandomWordLocation == fourthRandomWordLocation) {
secondRandomWordLocation = rgenerator.nextInt(romanjiList.size() - 1);
} else if (thirdRandomWordLocation == fourthRandomWordLocation) {
thirdRandomWordLocation = rgenerator.nextInt(romanjiList.size() - 1);
}
question = hiraganaList.get(randomWordLocation);
mButtonOne.setVisibility(View.VISIBLE);
mButtonTwo.setVisibility(View.VISIBLE);
mButtonThree.setVisibility(View.VISIBLE);
mButtonFour.setVisibility(View.VISIBLE);
mButtonOne.setEnabled(true);
mButtonTwo.setEnabled(true);
mButtonThree.setEnabled(true);
mButtonFour.setEnabled(true);
mButtonOne.setOnClickListener(checkWrongMCQScore);
mButtonTwo.setOnClickListener(checkWrongMCQScore);
mButtonThree.setOnClickListener(checkWrongMCQScore);
mButtonFour.setOnClickListener(checkWrongMCQScore);
correctButton = rgenerator.nextInt(4) + 1;
switch (correctButton) {
case 1:
answerOne = romanjiList.get(randomWordLocation);
mButtonOne.setOnClickListener(checkCorrectMCQScore);
hiraganaList.remove(randomWordLocation);
romanjiList.remove(randomWordLocation);
answerTwo = romanjiList.get(secondRandomWordLocation);
answerThree = romanjiList.get(thirdRandomWordLocation);
answerFour = romanjiList.get(fourthRandomWordLocation);
break;
case 2:
answerTwo = romanjiList.get(randomWordLocation);
mButtonTwo.setOnClickListener(checkCorrectMCQScore);
hiraganaList.remove(randomWordLocation);
romanjiList.remove(randomWordLocation);
answerOne = romanjiList.get(secondRandomWordLocation);
answerThree = romanjiList.get(thirdRandomWordLocation);
answerFour = romanjiList.get(fourthRandomWordLocation);
break;
case 3:
answerThree = romanjiList.get(randomWordLocation);
mButtonThree.setOnClickListener(checkCorrectMCQScore);
hiraganaList.remove(randomWordLocation);
romanjiList.remove(randomWordLocation);
answerOne = romanjiList.get(secondRandomWordLocation);
answerTwo = romanjiList.get(thirdRandomWordLocation);
answerFour = romanjiList.get(fourthRandomWordLocation);
break;
case 4:
answerFour = romanjiList.get(randomWordLocation);
mButtonFour.setOnClickListener(checkCorrectMCQScore);
hiraganaList.remove(randomWordLocation);
romanjiList.remove(randomWordLocation);
answerOne = romanjiList.get(secondRandomWordLocation);
answerTwo = romanjiList.get(thirdRandomWordLocation);
answerThree = romanjiList.get(fourthRandomWordLocation);
break;
}
}
private void getMCQuestions() {
questionCompleted = false;
getHiraganaQ();
mQuestionTextView.setText(question);
mButtonOne.setText(answerOne);
mButtonTwo.setText(answerTwo);
mButtonThree.setText(answerThree);
mButtonFour.setText(answerFour);
mNumberOfMCQsSet++;
}
private void getTypeQuestions() {
typeState = true;
int randomWordLocation = rgenerator.nextInt(hiraganaWordList.size());
typeQuestion = hiraganaWordList.get(randomWordLocation);
mTypeQuestionTextView.setText(typeQuestion);
}
private void checkTypeAnswers() {
mSubmit.setEnabled(false);
int hiraganaLocation = hiraganaWordList.indexOf(typeQuestion);
String answer = romanjiWordList.get(hiraganaLocation);
answerType = mEditText.getText().toString().trim();
if (answerType.equalsIgnoreCase(answer)) {
mQuizScore++;
Toast.makeText(QuizActivity.this, getString(R.string.correct_answer), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(QuizActivity.this, getString(R.string.wrong_answer), Toast.LENGTH_SHORT).show();
}
mEditText.setVisibility(View.GONE);
mEditTextAnswer.setVisibility(View.VISIBLE);
mEditTextAnswer.setText(answer);
}
private void setTypeQandA() {
questionCompleted = false;
getTypeQuestions();
mSubmit.setOnClickListener(checkTypeOnClick);
}
private void setCompletionSummary() {
if (mQuizScore >= mHighScore) {
mCommentText.setText(getString(R.string.well_done));
} else if (mQuizScore >= mMiddleScore) {
mCommentText.setText(getString(R.string.almost_there));
} else {
mCommentText.setText(getString(R.string.practice_makes_perfect));
}
}
private void showCorrectMCQAnswer() {
switch (correctButton) {
case 1:
mButtonOne.setEnabled(false);
mButtonTwo.setVisibility(View.GONE);
mButtonThree.setVisibility(View.GONE);
mButtonFour.setVisibility(View.GONE);
break;
case 2:
mButtonOne.setVisibility(View.GONE);
mButtonTwo.setEnabled(false);
mButtonThree.setVisibility(View.GONE);
mButtonFour.setVisibility(View.GONE);
break;
case 3:
mButtonOne.setVisibility(View.GONE);
mButtonTwo.setVisibility(View.GONE);
mButtonThree.setEnabled(false);
mButtonFour.setVisibility(View.GONE);
break;
case 4:
mButtonOne.setVisibility(View.GONE);
mButtonTwo.setVisibility(View.GONE);
mButtonThree.setVisibility(View.GONE);
mButtonFour.setEnabled(false);
break;
}
}
/**
* Hide keyboard when the EditText is not selected. Got this from StackOverflow
*
* @param ev
* @return
*/
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
View view = getCurrentFocus();
if (view != null && (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_MOVE) && view instanceof EditText && !view.getClass().getName().startsWith("android.webkit.")) {
int scrcoords[] = new int[2];
view.getLocationOnScreen(scrcoords);
float x = ev.getRawX() + view.getLeft() - scrcoords[0];
float y = ev.getRawY() + view.getTop() - scrcoords[1];
if (x < view.getLeft() || x > view.getRight() || y < view.getTop() || y > view.getBottom())
((InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow((this.getWindow().getDecorView().getApplicationWindowToken()), 0);
}
return super.dispatchTouchEvent(ev);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_quiz"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.novembergave.apps.learnhiragana.QuizActivity">
<LinearLayout
android:id="@+id/quiz_mcq"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="visible">
<TextView
android:id="@+id/question_textview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:gravity="center"
android:textColor="@color/hiraganaColor"
android:textSize="80sp"
android:textStyle="bold"
tools:text="@string/hiragana_a" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/button_one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:padding="10dp"
tools:text="@string/romanji_ba" />
<Button
android:id="@+id/button_two"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:padding="10dp"
tools:text="@string/romanji_ha" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/button_three"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:padding="10dp"
tools:text="@string/romanji_ma" />
<Button
android:id="@+id/button_four"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:padding="10dp"
tools:text="@string/romanji_a" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/quiz_type"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:id="@+id/type_question_textview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:gravity="center"
android:padding="20dp"
android:textColor="@color/hiraganaColor"
android:textSize="80sp"
android:textStyle="bold"
tools:text="@string/hiragana_a" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal"
android:weightSum="1">
<EditText
android:id="@+id/edit_text"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.7"
android:gravity="center"
android:hint="@string/hint"
android:imeOptions="actionDone"
android:inputType="text"
android:maxLines="1"
android:padding="10dp"
tools:text="@string/hint" />
<TextView
android:id="@+id/edit_text_answer"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.7"
android:gravity="center"
android:padding="10dp"
android:visibility="gone"
tools:text="@string/romanji_ba" />
<Button
android:id="@+id/submit_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.3"
android:text="@string/submit" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/final_score_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="@string/total_score" />
<TextView
android:id="@+id/score_text_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:gravity="center"
android:textColor="@color/hiraganaColor"
android:textSize="40sp"
android:textStyle="bold"
tools:text="5" />
<TextView
android:id="@+id/comment_text_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
tools:text="@string/practice_makes_perfect" />
</LinearLayout>
</LinearLayout>
<resources>
<string name="app_name">Learn Hiragana</string>
<string name="category_learning">Hiragana List</string>
<string name="category_quiz">Hiragana Quiz</string>
<string name="hint">Type the Romanji</string>
<string name="submit">Submit</string>
<string name="correct_answer">Correct Answer!</string>
<string name="wrong_answer">Wrong Answer!</string>
<string name="total_score">Total Score</string>
<string name="well_done">Well done!</string>
<string name="almost_there">Almost there!</string>
<string name="practice_makes_perfect">Practice makes perfect!</string>
<string name="website">http://www.novembergave.com</string>
<string name="hiragana_a">あ</string>
<string name="hiragana_i">い</string>
<string name="hiragana_u">う</string>
<string name="hiragana_e">え</string>
<string name="hiragana_o">お</string>
<string name="hiragana_ka">か</string>
<string name="hiragana_ki">き</string>
<string name="hiragana_ku">く</string>
<string name="hiragana_ke">け</string>
<string name="hiragana_ko">こ</string>
<string name="hiragana_sa">さ</string>
<string name="hiragana_shi">し</string>
<string name="hiragana_su">す</string>
<string name="hiragana_se">せ</string>
<string name="hiragana_so">そ</string>
<string name="hiragana_ta">た</string>
<string name="hiragana_chi">ち</string>
<string name="hiragana_tsu">つ</string>
<string name="hiragana_te">て</string>
<string name="hiragana_to">と</string>
<string name="hiragana_na">な</string>
<string name="hiragana_ni">に</string>
<string name="hiragana_nu">ぬ</string>
<string name="hiragana_ne">ね</string>
<string name="hiragana_no">の</string>
<string name="hiragana_ha">は</string>
<string name="hiragana_hi">ひ</string>
<string name="hiragana_hu">ふ</string>
<string name="hiragana_he">へ</string>
<string name="hiragana_ho">ほ</string>
<string name="hiragana_ma">ま</string>
<string name="hiragana_mi">み</string>
<string name="hiragana_mu">む</string>
<string name="hiragana_me">め</string>
<string name="hiragana_mo">も</string>
<string name="hiragana_ya">や</string>
<string name="hiragana_yu">ゆ</string>
<string name="hiragana_yo">よ</string>
<string name="hiragana_ra">ら</string>
<string name="hiragana_ri">り</string>
<string name="hiragana_ru">る</string>
<string name="hiragana_re">れ</string>
<string name="hiragana_ro">ろ</string>
<string name="hiragana_wa">わ</string>
<string name="hiragana_wo">を</string>
<string name="hiragana_n">ん</string>
<string name="hiragana_ga">が</string>
<string name="hiragana_gi">ぎ</string>
<string name="hiragana_gu">ぐ</string>
<string name="hiragana_ge">げ</string>
<string name="hiragana_go">ご</string>
<string name="hiragana_za">ざ</string>
<string name="hiragana_ji">じ</string>
<string name="hiragana_zu">ず</string>
<string name="hiragana_ze">ぜ</string>
<string name="hiragana_zo">ぞ</string>
<string name="hiragana_da">だ</string>
<string name="hiragana_dji">ぢ</string>
<string name="hiragana_dzu">づ</string>
<string name="hiragana_de">で</string>
<string name="hiragana_do">ど</string>
<string name="hiragana_ba">ば</string>
<string name="hiragana_bi">び</string>
<string name="hiragana_bu">ぶ</string>
<string name="hiragana_be">べ</string>
<string name="hiragana_bo">ぼ</string>
<string name="hiragana_pa">ぱ</string>
<string name="hiragana_pi">ぴ</string>
<string name="hiragana_pu">ぷ</string>
<string name="hiragana_pe">ぺ</string>
<string name="hiragana_po">ぽ</string>
<string name="romanji_a">a</string>
<string name="romanji_i">i</string>
<string name="romanji_u">u</string>
<string name="romanji_e">e</string>
<string name="romanji_o">o</string>
<string name="romanji_ka">ka</string>
<string name="romanji_ki">ki</string>
<string name="romanji_ku">ku</string>
<string name="romanji_ke">ke</string>
<string name="romanji_ko">ko</string>
<string name="romanji_sa">sa</string>
<string name="romanji_shi">shi</string>
<string name="romanji_su">su</string>
<string name="romanji_se">se</string>
<string name="romanji_so">so</string>
<string name="romanji_ta">ta</string>
<string name="romanji_chi">chi</string>
<string name="romanji_tsu">tsu</string>
<string name="romanji_te">te</string>
<string name="romanji_to">to</string>
<string name="romanji_na">na</string>
<string name="romanji_ni">ni</string>
<string name="romanji_nu">nu</string>
<string name="romanji_ne">ne</string>
<string name="romanji_no">no</string>
<string name="romanji_ha">ha</string>
<string name="romanji_hi">hi</string>
<string name="romanji_hu">hu</string>
<string name="romanji_he">he</string>
<string name="romanji_ho">ho</string>
<string name="romanji_ma">ma</string>
<string name="romanji_mi">mi</string>
<string name="romanji_mu">mu</string>
<string name="romanji_me">me</string>
<string name="romanji_mo">mo</string>
<string name="romanji_ya">ya</string>
<string name="romanji_yu">yu</string>
<string name="romanji_yo">yo</string>
<string name="romanji_ra">ra</string>
<string name="romanji_ri">ri</string>
<string name="romanji_ru">ru</string>
<string name="romanji_re">re</string>
<string name="romanji_ro">ro</string>
<string name="romanji_wa">wa</string>
<string name="romanji_wo">o</string>
<string name="romanji_n">n</string>
<string name="romanji_ga">ga</string>
<string name="romanji_gi">gi</string>
<string name="romanji_gu">gu</string>
<string name="romanji_ge">ge</string>
<string name="romanji_go">go</string>
<string name="romanji_za">za</string>
<string name="romanji_ji">ji</string>
<string name="romanji_zu">zu</string>
<string name="romanji_ze">ze</string>
<string name="romanji_zo">zo</string>
<string name="romanji_da">da</string>
<string name="romanji_dji">(d)ji</string>
<string name="romanji_dzu">zu</string>
<string name="romanji_de">de</string>
<string name="romanji_do">do</string>
<string name="romanji_ba">ba</string>
<string name="romanji_bi">bi</string>
<string name="romanji_bu">bu</string>
<string name="romanji_be">be</string>
<string name="romanji_bo">bo</string>
<string name="romanji_pa">pa</string>
<string name="romanji_pi">pi</string>
<string name="romanji_pu">pu</string>
<string name="romanji_pe">pe</string>
<string name="romanji_po">po</string>
<string-array name="hiragana_array">
<item>@string/hiragana_a</item>
<item>@string/hiragana_i</item>
<item>@string/hiragana_u</item>
<item>@string/hiragana_e</item>
<item>@string/hiragana_o</item>
<item>@string/hiragana_ka</item>
<item>@string/hiragana_ki</item>
<item>@string/hiragana_ku</item>
<item>@string/hiragana_ke</item>
<item>@string/hiragana_ko</item>
<item>@string/hiragana_sa</item>
<item>@string/hiragana_shi</item>
<item>@string/hiragana_su</item>
<item>@string/hiragana_se</item>
<item>@string/hiragana_so</item>
<item>@string/hiragana_ta</item>
<item>@string/hiragana_chi</item>
<item>@string/hiragana_tsu</item>
<item>@string/hiragana_te</item>
<item>@string/hiragana_to</item>
<item>@string/hiragana_na</item>
<item>@string/hiragana_ni</item>
<item>@string/hiragana_nu</item>
<item>@string/hiragana_ne</item>
<item>@string/hiragana_no</item>
<item>@string/hiragana_ha</item>
<item>@string/hiragana_hi</item>
<item>@string/hiragana_hu</item>
<item>@string/hiragana_he</item>
<item>@string/hiragana_ho</item>
<item>@string/hiragana_ma</item>
<item>@string/hiragana_mi</item>
<item>@string/hiragana_mu</item>
<item>@string/hiragana_me</item>
<item>@string/hiragana_mo</item>
<item>@string/hiragana_ya</item>
<item>@string/hiragana_yu</item>
<item>@string/hiragana_yo</item>
<item>@string/hiragana_ra</item>
<item>@string/hiragana_ri</item>
<item>@string/hiragana_ru</item>
<item>@string/hiragana_re</item>
<item>@string/hiragana_ro</item>
<item>@string/hiragana_wa</item>
<item>@string/hiragana_wo</item>
<item>@string/hiragana_n</item>
<item>@string/hiragana_ga</item>
<item>@string/hiragana_gi</item>
<item>@string/hiragana_gu</item>
<item>@string/hiragana_ge</item>
<item>@string/hiragana_go</item>
<item>@string/hiragana_za</item>
<item>@string/hiragana_ji</item>
<item>@string/hiragana_zu</item>
<item>@string/hiragana_ze</item>
<item>@string/hiragana_zo</item>
<item>@string/hiragana_da</item>
<item>@string/hiragana_dji</item>
<item>@string/hiragana_dzu</item>
<item>@string/hiragana_de</item>
<item>@string/hiragana_do</item>
<item>@string/hiragana_ba</item>
<item>@string/hiragana_bi</item>
<item>@string/hiragana_bu</item>
<item>@string/hiragana_be</item>
<item>@string/hiragana_bo</item>
<item>@string/hiragana_pa</item>
<item>@string/hiragana_pi</item>
<item>@string/hiragana_pu</item>
<item>@string/hiragana_pe</item>
<item>@string/hiragana_po</item>
</string-array>
<string-array name="romanji_array">
<item>@string/romanji_a</item>
<item>@string/romanji_i</item>
<item>@string/romanji_u</item>
<item>@string/romanji_e</item>
<item>@string/romanji_o</item>
<item>@string/romanji_ka</item>
<item>@string/romanji_ki</item>
<item>@string/romanji_ku</item>
<item>@string/romanji_ke</item>
<item>@string/romanji_ko</item>
<item>@string/romanji_sa</item>
<item>@string/romanji_shi</item>
<item>@string/romanji_su</item>
<item>@string/romanji_se</item>
<item>@string/romanji_so</item>
<item>@string/romanji_ta</item>
<item>@string/romanji_chi</item>
<item>@string/romanji_tsu</item>
<item>@string/romanji_te</item>
<item>@string/romanji_to</item>
<item>@string/romanji_na</item>
<item>@string/romanji_ni</item>
<item>@string/romanji_nu</item>
<item>@string/romanji_ne</item>
<item>@string/romanji_no</item>
<item>@string/romanji_ha</item>
<item>@string/romanji_hi</item>
<item>@string/romanji_hu</item>
<item>@string/romanji_he</item>
<item>@string/romanji_ho</item>
<item>@string/romanji_ma</item>
<item>@string/romanji_mi</item>
<item>@string/romanji_mu</item>
<item>@string/romanji_me</item>
<item>@string/romanji_mo</item>
<item>@string/romanji_ya</item>
<item>@string/romanji_yu</item>
<item>@string/romanji_yo</item>
<item>@string/romanji_ra</item>
<item>@string/romanji_ri</item>
<item>@string/romanji_ru</item>
<item>@string/romanji_re</item>
<item>@string/romanji_ro</item>
<item>@string/romanji_wa</item>
<item>@string/romanji_wo</item>
<item>@string/romanji_n</item>
<item>@string/romanji_ga</item>
<item>@string/romanji_gi</item>
<item>@string/romanji_gu</item>
<item>@string/romanji_ge</item>
<item>@string/romanji_go</item>
<item>@string/romanji_za</item>
<item>@string/romanji_ji</item>
<item>@string/romanji_zu</item>
<item>@string/romanji_ze</item>
<item>@string/romanji_zo</item>
<item>@string/romanji_da</item>
<item>@string/romanji_dji</item>
<item>@string/romanji_dzu</item>
<item>@string/romanji_de</item>
<item>@string/romanji_do</item>
<item>@string/romanji_ba</item>
<item>@string/romanji_bi</item>
<item>@string/romanji_bu</item>
<item>@string/romanji_be</item>
<item>@string/romanji_bo</item>
<item>@string/romanji_pa</item>
<item>@string/romanji_pi</item>
<item>@string/romanji_pu</item>
<item>@string/romanji_pe</item>
<item>@string/romanji_po</item>
</string-array>
<string-array name="hiragana_words">
<item>ありがとう</item>
<item>さようなら</item>
<item>こんにちわ</item>
<item>おやすみ</item>
<item>もしもし</item>
</string-array>
<string-array name="romanji_words">
<item>arigatou</item>
<item>sayounara</item>
<item>konnichiwa</item>
<item>oyasumi</item>
<item>moshimoshi</item>
</string-array>
</resources>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment