. . . Android- .
, | |
31.07.2016 | |
70,3 K |
. ,
, , , , .
http://www.allbest.ru/
http://www.allbest.ru/
Android .
. -, 15 . 1999 . 2015 . 4 . 1999 . - . .. . 2001 , [20]. 2014 . () [9]. 2015 . .
, , . 5 : N1, N2, N3, N4 N5. - N1, - N5. , , [21]. , .
-, 90- . [22,1,12,18]. , , , . , .. .. , . , . , , . [2]
, .. , . , , - [5].
, Android 2015 82,2%, , [10].
, Google Play, : , , . : JA Sensei Obenkyo. : , , , .
. - Android .
.
, :
- ;
- AndroidStudio 2.0;
- Android- .
, , - .
, , ; , , .
, , , .
1.
; ; .
1.1
. (Common European Framework of Reference) (A - Basic User; B - Independent User; C - Proficient User), :
1. A1 - Breakthrough
2. A2 - Waystage
3. B1 - Threshold
4. B2 - Vantage
5. C1 - Effective Operational Proficiency
6. C2 - Mastery[15]
C .
({\͎). , (JF) (JEES), 1984 , . 2008 560000 .
, : , , . , , .
, JF JEES , , 20 , 2010 .
, . , , , .
(1-, 2-, 3- 4- ) (N1, N2, N3, N4, N5). .
N1 |
1 , . , |
|
N2 |
2 |
|
N3 |
2 3 () |
|
N4 |
3 |
|
N5 |
4 |
N Nihongo ({) - , New - .
, 4- 5- .
N4 |
. ? . ? , . |
|
N5 |
. ? , , , , , . ? , ( , ..). |
, . N1, N2, , , / , N3, N4, N5 : , , , . , N3, N4, N5 , (, , ) / , .
, 2014 . Japan Foundation 6- (1-2) - Japan Foundation Standard, . JFS , . , , JFS (܂邲) 1-2 , [11].
:
1) , , , ;
2) , : .
:
1) ( ), , p (: : :) ( , ), - 1000 . , . , , , . , , , . : , ; [11]
2) ;
3) , , ;
4) , .
, :
1. . ;
2. . ;
3. . ;
4. . ;
5. . ;
6. . . ;
7. . ;
8. . ;
9. . ;
10. ;
11. . ;
12. . ;
13. . . ;
14. .
, :
1. : -/ -.
2. .
3. .
4. .
5. .
6. :
i. ;
ii. ,
iii. ;
iv. ;
v. ;
vi. , , - .
7. .
8. .
9. .
10. , , .
11. .
12. :
i. ;
ii. ;
iii. ;
iv. ;
v. ;
vi. .
:
1) JBridge. .1-3. - Tokyo, Bonjinsha, 2005.
2) Minna no Nihongo. .1-2 - Tokyo, 3A Corporation, 1998.
3) Basic Kanji Book. - Tokyo, Bonjinsha, 2001.
, . , Minna no Nihongo , .
:
1) Japanese-Language Proficiency Test Official Practice Workbook N4. Publisher: Bonjinsha Inc.
2) Japanese-Language Proficiency Test Official Practice Workbook N5. Publisher: Bonjinsha Inc.
, 1 , CD . .
Nihongo Sou Matome. 4 : , , , .
1.2
, . KotobaQuiz . .. 3 : - () 1- , .
, . , , :
1) ;
2) ,
3) ;
4) ;
5) , ;
[11].
, , , .
: . , :
1) - s->, _->T, ->, ~->
2) - b->L, ->p, R->\, b, W->i,
, , : - .
, , , .
1.3
:
- -;
- ;
- .
.
- , , . : 4 . , . , . , : , , , . V . . : { , x . , : , , - N .
, , - .
, , , . , 1 -, - -. , - . :
- ̎q͈҂ɏ܂B - .
- eŁAޏ͑cɈĂꂽB - , .
- - . : 1- + . 1- , 2- - , 3- :
[
[.
. , 4 :
͐yɁQQQQQB
a) ҂ b)҂܂ c)҂܂ d) ҂
, - . b . , , - . , ǂ -> ǂ܂ -> ǂ܂.
- 11 , :
1. , : , . .
2. .
3. .
4. .
5. .
6. .
7. .
8. .
9. .
10. ܂.
11. .
肪. , . :
~͚MނłB - - .
- . :
|{͐_ːlłA^Oǂ͉lłB - - - , - - [3, c. 99]
, , . :
Ln̉͑f炵łB - [7, c. 25-26]
. , . :
͖ؑłB - -?
ؑ̕łB-@ -.
, , , : ? ?. :
J~Ă܂B@|@ .
:
N͊ǂނƂł܂B - - . : -, .
AWF[J́AxmRƂ܂B - - . : -, .
̑̐l̓VAꂪ킩܂B - -.@ : , ( ) .
N͐VԂقłB - - . : -, .
, , [24, c. 120].
. :
͑cꂿcqB - -, [25, c. 69]
:
_~Ă܂B
: . . :
a) b) c) d)
, ?, . .
2.
; -; , .
2.1
, .. . :
1) , ;
2) ;
3)
4) , [14].
KotobaQuiz :
1) Android Studio 2.0 - -;
2) SQLite Browser 3.5.0 - , -;
3) Adobe Illustrator 2014 - . .
2.2
: , , . . , . , , . 1.
:
1. ;
2. ;
3. ;
4. ;
5. ;
6. .
C :
1. ;
2. ;
3. ;
4. ;
5. , .
:
1. ;
2. .
, : . : 2 3 , 1 2 .
2.3 Android-
KotobaQuiz :
1) , , , . , ;
2) : , , ;
3) : , / , , , .
13 java-, 2 (. 1), 8 xml- (. 2), 25 , , ; , . , , . java- com.lyubov.app.kotobaquiz.. 5 : customization, database, preferences, task, ui (. 2). .
customization 2 java- :
- BackGroundManager.java - ;
- SoundManager.java - ;
- ThemeKeys.java - .
BackGroundManager.java . ThemeKeys.java . (Singleton Pattern). , , : , . . (, 2016:60). ThemeKeys.java getInstance(); BackgroundManager(); init(), :
public static BackgroundManager getInstance() {
if (sInstance == null) {
return sInstance = new BackgroundManager();
} else {
return sInstance;
}
}
private BackgroundManager() {
}
public void init (Context context) {
//
}
ThemeKeys.java, , , :
Integer ORIGINAL_THEME_KEY = 1;
Integer DARK_THEME_KEY = 2;
Integer NEUTRAL_THEME_KEY = 3;
ORIGINAL_THEME_KEY 1, : - . , . DARK_THEME_KEY 2, : - . , . , NEUTRAL_THEME_KEY 3, : - .
SoundManager.java . , BackgroundManager.java Singleton. getState() .
public boolean getState() {
return mState;
}
playSoundClick(). , . MediaPlayer.java . , , .
public void playSoundClick (final Context context) {
new Thread (new Runnable() {
@Override
public void run() {MediaPlayer mediaPlayer = MediaPlayer.create (context, R.raw.button_click);
mediaPlayer.start();
}
}).start();
}
database - ExternalDBOpenHelper.java, . SQLiteOpenHelper.java. .
:
private final String DB_PATH;
private final String DB_NAME;
private SQLiteDatabase database;
private final Context context;
DB_PATH DB_NAME . database SQLiteDatabase , . context .
createDataBase() , copyDataBase() .
openDataBase() , . , . close() synchronized , .
preferences - PreferencesManager(). , : . . mPref SharedPreferences . savePreference Editor.java, edit(). putInt() Editor.java . savePreferences. loadPreferences() getPreference() .
task :
- TaskTypes.java - ;
- QuestionAndAnswers.java - ;
- QuestionAndAnswerManager.java - ;
- TaskLoader.java - .
; .
QuestionAndAnswer.java , . :
- mQuestion - ;
- mAnswerOne - 1- ;
- mAnswerTwo - 2- ;
- mAnswerThree - 3- ;
- mAnswerFour - 4- ;
- mCorrectAnswer - .
. - - .
QuestionAndAnswersManager.java - , , , . :
- mArray - , QuestionAndAnswers.java;
- mCorrectAnswerCount - ;
- mIncorrectAnswerCount - ;
- mNumberOfQuestion - , ;
- mAnswerAndQuestionNumber - QuestionAndAnswers.java;
, QuestionAndAnswers:
mArray = new ArrayList<>(quantity);
for (int i = 0; i < quantity; i++) {
mArray.add (i, new QuestionAndAnswers());}
:
mCorrectAnswerCount = 0;
mIncorrectAnswerCount = 0;
mAnswerAndQuestionNumber = 0;
mNumberOfQuestion = 1;
getCorrectAnswersCount() . getIncorrectAnswersCount() . setAnswerAndQuestion():
public void setAnswersAndQuestion (TextView question, Button answerOne, Button answerTwo, Button answerThree, Button answerFour, TextView numberQuestion, Context context) {
Random rand = new Random();
if (mArray.size() > 0) {
mAnswerAndQuestionNumber = rand.nextInt (mArray.size());}
(, ) setText(). question answerOne :
question.setText (mArray.get(mAnswerAndQuestionNumber).getQuestion());
answerOne.setText (mArray.get(mAnswerAndQuestionNumber).getAnswerOne());
, numberQuestion setText():
numberQuestion.setText (context.getResources().getString (R.string.question_number) +
String.valueOf(mNumberOfQuestion));
}
, , isCorrect():
public boolean isCorrect (Button currentButton) {
mNumberOfQuestion++;
if (mArray.get(mAnswerAndQuestionNumber).getCorrectAnswer().
equals (currentButton.getText())) {
mCorrectAnswerCount++;
return true;
} else {
mIncorrectAnswerCount++;
return false;
}
}
QuestionAndAnswers.java , , mArray:
public void removeChosenAnswerAndQuestion() {
mArray.remove(mAnswerAndQuestionNumber);
}
mArray getArrayAnswersAndQuestions():
public ArrayList<QuestionAndAnswers> getArrayAnswersAndQuestions() {
return mArray;
}
}
TaskLoader.java TaskTypes.java, , :
- int CHARACTER_MEANING = 0 - , -;
- int GRAMMAR = 1 - , ;
- int CHOOSE_RIGHT_PARTICLE = 2 - , ;
: , :
- String TASK_TABLE_ONE = task_char_trans - , -;
- String TASK_TABLE_TWO = task_gram - , ;
- String TASK_TABLE_THREE = task_choose_particle - , ;
, :
- String TASK_ID = _id - , , ;
- String TASK = task - , , 1, ;
- String CORRECT_ANSWER = correct_answer - , , ;
- String DB_NAME = taskdatabase - , 1;
- String TABLE_RESULT_CHARACTER_MEANING = result_character_meaning - , 2;
- String TABLE_RESULT_CHARACTER_READING = result_gram - , 3
- String TABLE_RESULT_CHOOSE_PARTICLE = result_choose_particle - , , - , ,
- String RESULT_CORRECT_ANSWER = correct_answer - , , ;
- String RESULT_INCORRECT_ANSWER = incorrect_answer - , - , ;
- String RESULT_TOTAL_RATE = total_rate - , ;
- int NUMBER_OF_ANSWERS = 4 - , ;
sDataBase SQLiteDatabase. QuestionAndAnswers.java, , mQuestionsAndAnswersCountForTask. Cursor. connectAndOpenDataBase(). executeData(). , , , . :
ArrayList<String> cursorColumns = new ArrayList<>(4);
cursorColumns.add (ANSWER_ONE);
cursorColumns.add (ANSWER_TWO);
cursorColumns.add (ANSWER_THREE);
cursorColumns.add (ANSWER_FOUR);
, :
Integer[] columnOfAnswer;
, , :
Iterator setIterator = randSet.iterator();
0 :
for (int i = 0; i < arrayQuestionAndAnswers.size(); i++) {
:
cursor.moveToPosition((int) setIterator.next());
, :
columnOfAnswer = randomLoadingAnswers();
& , :
arrayQuestionAndAnswers.get(i).
setQuestion (cursor.getString (cursor.getColumnIndex(TASK)));
& , , : arrayQuestionAndAnswers.get(i).
setAnswerOne (cursor.getString (cursor.getColumnIndex (cursorColumns. get (columnOfAnswer[0])
& , , ( 0 3). & , , :
arrayQuestionAndAnswers.get(i). setCorrectAnswer (cursor.getString (cursor.getColumnIndex (CORRECT_ANSWER)));
, :
cursor.close();
, :
public void setCursorForTaskLoad (String tableName)
, , , :
cursor = sDataBase.query (tableName, new String[] {TASK, ANSWER_ONE, ANSWER_TWO, ANSWER_THREE, ANSWER_FOUR, CORRECT_ANSWER}, null, null, null, null, null);
(), . , , , :
public void setQuestionsAnswersCountForTask() {
mQuestionsAndAnswersCountForTask = cursor.getCount() / 2;
}
- & , :
public int getQuestionsAnswersCountForTask() {
return mQuestionsAndAnswersCountForTask;
}
, ,
public String getTableFromNumber (int number) {
switch (number) {
case CHARACTER_MEANING:
return TASK_TABLE_ONE;
case GRAMMAR:
return TASK_TABLE_TWO;
case CHOOSE_RIGHT_PARTICLE:
return TASK_TABLE_THREE;
default:
return null;
}
}
, , switch-case-break:
public String getResultTableFromNumberOfTask (int number) {
switch (number) {
case CHARACTER_MEANING:
return TABLE_RESULT_CHARACTER_MEANING;
case GRAMMAR:
return TABLE_RESULT_CHARACTER_READING;
case CHOOSE_RIGHT_PARTICLE:
return TABLE_RESULT_CHOOSE_PARTICLE;
default:
return null;
}
}
- . , - - :
public String getResultTableForTaskOne() {
return TABLE_RESULT_CHARACTER_MEANING;
}
getStatistics() . .
ui, -Activity, layout . : , onClickListener(). :
- MainActivity.java;
- SelectTypeLessonActivity.java;
- GameActivity.java;
- ResultActivity.java;
- StatisticsActivity.java;
- SettingsActivity.java;
MainActivity.java main_menu_layout.xml (. ). : RelativeLeayout ; Button , , , , ; : . onCreate(), init(). . , :
mStatisticButton.setOnClickListener(this);
setTheme(). :
if (SoundManager.getInstance().getState()) {
SoundManager.getInstance().playSoundClick (getBaseContext());
}
, . , :
switch (view.getId()) {
case R.id.settings_button:
goToSettingActivity();
break;
case R.id.game_button:
goToSelectLessonActivity();
break;
case R.id.about_button:
showAbout();
break;
case R.id.exit_button:
exit();
break;
case R.id.statistic_button:
goToStatisticsActivity();
break;
default:
break;
}
}
.
private void showAbout() {
AlertDialog. Builder builder = new AlertDialog. Builder (MainActivity.this);
builder.setTitle (R.string.about_game_title)
setMessage (R.string.about_game_info)
setPositiveButton (R.string.ok, new DialogInterface. OnClickListener() {
@Override
public void onClick (DialogInterface dialogInterface, int i) {dialogInterface.dismiss();}});
AlertDialog aboutDialog = builder.create();
aboutDialog.show();
}
:
android.os. Process.killProcess (android.os. Process.myPid());
GameActivity.java : , . 0,5 , : , , , .
ResultActivity.java , . :
resultView.setText (getResources().getString (R.string.correct_answers_text) + + String.valueOf(mCorrectAnswersCount) + \r\n + getResources().getString (R.string.incorrect_answers_text) + + String.valueOf(mIncorrectAnswersCount));
. 5 , . 10, . 10 - .
private void calculateRate() {
if (mCorrectAnswersCount <= 5) {
setRate (R.drawable.bad_rate, getResources().getString (R.string.bad));
} else if (mCorrectAnswersCount <= 10) {
setRate (R.drawable.normal_rate, getResources().getString (R.string.not_bad));
} else {
setRate (R.drawable.good_rate, getResources().getString (R.string.good));
}
}
, :
- ;
- ;
- .
private void setRate (int drawable, String totalTextRate) {
ImageView mGraphicalRate = (ImageView) findViewById (R.id.graphical_rating);
mGraphicalRate.setImageResource(drawable);
mTextRate.setText(totalTextRate);
}
SelectTypeLessonActivity.java : - , , . .
SettingsActivity.java , : / , . , : , . , , .
StatisticsActivity.java : getStatistics():
private String[] getmStatistics()
TaskLoader.java :
TaskLoader statisticLoader = new TaskLoader();
statisticLoader.connectAndOpenDataBase (getBaseContext());
1 ( ):
String taskStatisticOne = statisticLoader.getStatistics (statisticLoader.
getResultTableForTaskOne(), getBaseContext());
:
statisticLoader.closeDatabase();
:
return new String[] {taskStatisticOne, taskStatisticTwo, taskStatisticThree};}
2.4
, KotobaQuiz - Android 4.1 Jelly Bean. , 4.1. 5 Mb .
, :
- . .. ; , - . ;
- : Java for Android Android Studio 2.0.
- ;
- Android-.
, : , , Material design - , Google. Google Play.
1. .. // . 2014. 31.
2. .., .. . : - -. 5-10 2014 . - : . .. . 2015. C. 42-46.
3. , .. . I/ .. . - .: . .. , 1999. - 305 .
Android. Java. Android . Android . .
[167,8 K], 18.01.2017Android "". Android. . . . .
[1,6 M], 17.06.2017. . . Android.
[987,1 K], 27.06.2019Android Java. , , . . .
[114,8 K], 03.08.2017, Android. DelphiXE5. . . .
[1,6 M], 19.04.2017Android. Android, - . , .
[1,2 M], 04.02.2016Web-. PHP. . SQL . Web-. . .
[4,8 M], 28.04.2014, Android SQLite. "DataBase". SQLite. . update delete. .
[744,9 K], 07.07.2014Android, Dalvik. - Java Android.
[1,6 M], 08.07.2015. Android. . .
[2,5 M], 17.02.2016