Обучение студентов японскому языку
Содержание начального уровня владения японским языком. Описание лингвистического эксперимента, составление упражнений. Разработка Android-приложения, системные требования. Сдача международного экзамена по определению уровня владения японским языком.
Рубрика | Педагогика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 10.02.2017 |
Размер файла | 2,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
9. Нижегородский лингвистический университет им. Н.А. Добролюбова [Электронный ресурс]. - Режим доступа: http://www.lunn.ru/?id=5052&query_id=319245, свободный.
10. Сайт «Cnews» [Электронный ресурс]. - Режим доступа: http://www.cnews.ru/news/top/rost_rynka_smartfonov_i_platformy_android, свободный.
11. Сайт Japanese-Language proficiency Test [Электронный ресурс]. - Режим доступа: http://www.jlpt.jp/e/about/comparison.html, свободный.
12. Самохина Н.В. Использование мобильных технологий при обучении английскому языку: развитие традиций и поиск новых методических моделей // Фундаментальные исследования. 2014. № 6-3
13. Скотт, К. Java для студента/ К. Скотт - Спб.: БХВ-Петербург, 2007. - 448 с.: ил.
14. Сон И.С. Мобильное обучение в изучении иностранных языков [Текст] // Теория и практика образования в современном мире: материалы III междунар. науч. конф. (г. Санкт-Петербург, май 2013 г.). -- СПб.: Реноме, 2013. -- С. 164-167.
15. Харди, Б., Филлипс Б. Программирование под Android. Для профессионалов/Б. Харди, Б. Филлипс -- СПб.: Питер, 2014. -- 592 с.: ил.
16. Шилдт, Г. Java 8. Полное руководство; 9-е изд.: Пер. с англ. - М.: ООО "И.Д. Вильяме", 2015. - 1376 с.: ил.
17. Шилдт, Г. Java: руководство для начинающих / Г. Шилдт; пер. с англ. - М.: ООО «И.Д. Вильямс», 2015. - 624 с.: ил.
18. Шишковская Ю.В. Использование мобильных устройств в педагогической практике // Молодой ученый. -- 2015. -- № 11. -- С. 1519-1521.
19. Эккель, Б. Философия Java. Библиотека программиста/ Б. Эккель - Спб.: Питер, 2009. - 640 с.: ил.
20. Японский центр в Нижнем Новгороде [Электронный ресурс]. - Режим доступа: http://www.jcnn.ru/about/history.php, свободный.
21. Common European framework of reference for languages: Learning, Teaching, Assessment//Сайт Совета Европы [Электронный ресурс]. - Режим доступа: http://www.coe.int/t/dg4/linguistic/Source/Framework_EN.pdf, свободный.
22. Godwin-Jones, R. Emerging technologies mobile apps for language learning[Текст]/ R. Jones// Language Learning & Technology ,2011- Volume 15, Number 2 (June 2011). - pp. 2-11.
23. Japan Foundation [Электронный ресурс]. - Режим доступа: http://jpfmw.ru/ru/yaponskij-yazyik/jfcouza.html, свободный.
24. Makino, S. A Dictionary of basic Japanese grammar/ S. Makino, M.Tsutsui - Токио: The Japan Times, 2000. - 152 c.
25. Shin Nihongo no kiso I. Грамматический комментарий на русском языке, 3А Corporation, Токио: Chiyoda-ku, 1996 - 120 c.
Приложение 1
Экраны приложения “KotobaQuiz”
Приложение 2
Исходный java-код
package com.lyubov.app.kotobaquiz.customization;
public interface ThemeKeys {
Integer ORIGINAL_THEME_KEY = 1;
Integer DARK_THEME_KEY = 2;
Integer NEUTRAL_THEME_KEY = 3;
}
import android.app.Activity;
import android.content.Context;
import android.util.SparseArray;
import android.widget.RelativeLayout;
import com.lyubov.app.kotobaquiz.R;
import com.lyubov.app.kotobaquiz.preferences.PreferencesManager;
public class BackgroundManager implements ThemeKeys {
private static final String THEME_PRFERENCES = "theme_preferences";
private static final String THEME_KEY = "radio_button_theme";
private static BackgroundManager sInstance;
private PreferencesManager mPrefManager
private SparseArray<Integer> mThemes;
public static BackgroundManager getInstance() {
if (sInstance == null) {
return sInstance = new BackgroundManager();
} else {
return sInstance;
}
}
private BackgroundManager() {
}
public void init(Context context) {
mPrefManager = new PreferencesManager(context.getSharedPreferences(THEME_PRFERENCES,
Activity.MODE_PRIVATE));
mThemes = new SparseArray<>(3);
mThemes.put(ORIGINAL_THEME_KEY, R.drawable.background_original);
mThemes.put(DARK_THEME_KEY, R.drawable.backbround_dark);
mThemes.put(NEUTRAL_THEME_KEY, R.drawable.background_neutral);
}
public void setTheme(RelativeLayout layout) {
int theme = mPrefManager.getPreference().getInt(THEME_KEY, ORIGINAL_THEME_KEY);
if (mThemes.get(theme) != null) {
layout.setBackground(layout.getResources().getDrawable(mThemes.get(theme)));
}
}
public void saveTheme(int radioId) {
mPrefManager.savePreference(THEME_KEY, radioId);
}
public int loadTheme() {
return mPrefManager.loadPreferences(THEME_KEY, 1);
}
public void deleteManager() {
sInstance = null;
}
}
package com.lyubov.app.kotobaquiz.customization;
import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import com.lyubov.app.kotobaquiz.R;
import com.lyubov.app.kotobaquiz.preferences.PreferencesManager;
public class SoundManager {
private static final String SOUND_PREFERENCES = "sound_preferences";
private static final String SOUND_KEY = "sound_enable_checkbox";
private static SoundManager sInstance;
private PreferencesManager mPrefManager;
private boolean mState;
public static SoundManager getInstance() {
if (sInstance == null) {
return sInstance = new SoundManager();
} else {
return sInstance;
}
}
private SoundManager() {
}
public boolean getState() {
return mState;
}
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();
}
public void init(Context context) {
mPrefManager = new PreferencesManager(context.getSharedPreferences(SOUND_PREFERENCES,
Activity.MODE_PRIVATE));
}
public boolean loadState() {
mState = mPrefManager.loadPreferences(SOUND_KEY, false);
return mState;
}
public void saveState(boolean state) {
mState = state;
mPrefManager.savePreference(SOUND_KEY, state);
}
public void deleteManager() {
sInstance = null;
}
}
package com.lyubov.app.kotobaquiz.database;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class ExternalDbOpenHelper extends SQLiteOpenHelper {
private final String DB_PATH;
private final String DB_NAME;
private SQLiteDatabase database;
private final Context context;
public ExternalDbOpenHelper(Context context, String databaseName) {
super(context, databaseName, null, 1);
this.context = context;
String packageName = context.getPackageName();
DB_PATH = String.format("//data//data//com.lyubov.app.kotobaquiz//databases//", packageName);
DB_NAME = databaseName;
try {
openDataBase();
} catch (SQLException e) {
e.printStackTrace();
}
}
private void createDataBase() {
boolean dbExist = checkDataBase();
if (!dbExist) {
this.getReadableDatabase();
try {
copyDataBase();
} catch (IOException e) {
Log.e(this.getClass().toString(), "Copying error");
throw new Error("Error copying database!");
}
} else {
Log.i(this.getClass().toString(), "Database already exists");
}
}
private boolean checkDataBase() {
SQLiteDatabase checkDb = null;
try {
String path = DB_PATH + DB_NAME;
checkDb = SQLiteDatabase.openDatabase(path, null,
SQLiteDatabase.OPEN_READONLY);
} catch (android.database.SQLException e) {
Log.e(this.getClass().toString(), "Error while checking db");
}
if (checkDb != null) {
checkDb.close();
}
return checkDb != null;
}
private void copyDataBase() throws IOException {
InputStream externalDbStream = context.getAssets().open(DB_NAME);
String outFileName = DB_PATH + DB_NAME;
OutputStream localDbStream = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = externalDbStream.read(buffer)) > 0) {
localDbStream.write(buffer, 0, bytesRead);
}
localDbStream.close();
externalDbStream.close();
}
public SQLiteDatabase openDataBase() throws SQLException {
String path = DB_PATH + DB_NAME;
if (database == null) {
createDataBase();
database = SQLiteDatabase.openDatabase(path, null,
SQLiteDatabase.OPEN_READWRITE);
}
return database;
}
@Override
public synchronized void close() {
if (database != null) {
database.close();
}
super.close();
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
}
}
package com.lyubov.app.kotobaquiz.preferences;
import android.content.SharedPreferences;
public class PreferencesManager {
private final SharedPreferences mPref;
public PreferencesManager(SharedPreferences pref) {
mPref = pref;
}
public void savePreference(String key, int value) {
SharedPreferences.Editor editor = mPref.edit();
editor.putInt(key, value);
editor.apply();
}
public void savePreference(String key, boolean value) {
SharedPreferences.Editor editor = mPref.edit();
editor.putBoolean(key, value);
editor.apply();
}
public int loadPreferences(String key, int defaultValue) {
return mPref.getInt(key, defaultValue);
}
public boolean loadPreferences(String key, boolean defaultValue) {
return mPref.getBoolean(key, defaultValue);
}
public SharedPreferences getPreference() {
return mPref;
}
}
package com.lyubov.app.kotobaquiz.task;
public interface TaskTypes {
int CHARACTER_MEANING = 0;
int GRAMMAR = 1;
int CHOOSE_RIGHT_PARTICLE = 2;
}
package com.lyubov.app.kotobaquiz.task;
class QuestionAndAnswers {
private String mQuestion;
private String mAnswerOne;
private String mAnswerTwo;
private String mAnswerThree;
private String mAnswerFour;
private String mCorrectAnswer;
public QuestionAndAnswers() {
mQuestion = "";
mAnswerOne = "";
mAnswerTwo = "";
mAnswerThree = "";
mAnswerFour = "";
mCorrectAnswer = "";
}
public String getQuestion() {
return mQuestion;
}
public String getAnswerOne() {
return mAnswerOne;
}
public String getAnswerTwo() {
return mAnswerTwo;
}
public String getAnswerThree() {
return mAnswerThree;
}
public String getAnswerFour() {
return mAnswerFour;
}
public String getCorrectAnswer() {
return mCorrectAnswer;
}
public void setQuestion(String question) {
mQuestion = question;
}
public void setAnswerOne(String answerOne) {
mAnswerOne = answerOne;
}
public void setAnswerTwo(String answerTwo) {
mAnswerTwo = answerTwo;
}
public void setAnswerThree(String answerThree) {
mAnswerThree = answerThree;
}
public void setAnswerFour(String answerFour) {
mAnswerFour = answerFour;
}
public void setCorrectAnswer(String correctAnswer) {
mCorrectAnswer = correctAnswer;
}
}
package com.lyubov.app.kotobaquiz.task;
import android.content.Context;
import android.widget.Button;
import android.widget.TextView;
import com.lyubov.app.kotobaquiz.R;
import java.util.ArrayList;
import java.util.Random;
public class QuestionAndAnswersManager {
private final ArrayList<QuestionAndAnswers> mArray;
private int mCorrectAnswerCount;
private int mIncorrectAnswerCount;
private int mNumberOfQuestion;
private int mAnswerAndQuestionNumber;
public QuestionAndAnswersManager(int quantity) {
mArray = new ArrayList<>(quantity);
for (int i = 0;
i < quantity;
i++) {
mArray.add(i, new QuestionAndAnswers());
}
mCorrectAnswerCount = 0;
mIncorrectAnswerCount = 0;
mAnswerAndQuestionNumber = 0;
mNumberOfQuestion = 1;
}
public int getCorrectAnswersCount() {
return mCorrectAnswerCount;
}
public int getIncorrectAnswersCount() {
return mIncorrectAnswerCount;
}
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());
}
question.setText(mArray.get(mAnswerAndQuestionNumber).getQuestion());
answerOne.setText(mArray.get(mAnswerAndQuestionNumber).getAnswerOne());
answerTwo.setText(mArray.get(mAnswerAndQuestionNumber).getAnswerTwo());
answerThree.setText(mArray.get(mAnswerAndQuestionNumber).getAnswerThree());
answerFour.setText(mArray.get(mAnswerAndQuestionNumber).getAnswerFour());
numberQuestion.setText(context.getResources().getString(R.string.question_number) +
String.valueOf(mNumberOfQuestion));
}
public boolean isCorrect(Button currentButton) {
mNumberOfQuestion++;
if (mArray.get(mAnswerAndQuestionNumber).getCorrectAnswer().
equals(currentButton.getText())) {
mCorrectAnswerCount++;
return true;
} else {
mIncorrectAnswerCount++;
return false;
}
}
public void removeChosenAnswerAndQuestion() {
mArray.remove(mAnswerAndQuestionNumber);
}
public ArrayList<QuestionAndAnswers> getArrayAnswersAndQuestions(){
return mArray;
}
}
package com.lyubov.app.kotobaquiz.task;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import com.lyubov.app.kotobaquiz.R;
import com.lyubov.app.kotobaquiz.database.ExternalDbOpenHelper;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
public class TaskLoader implements TaskTypes {
private static final String TASK_TABLE_ONE = "task_char_trans";
private static final String TASK_TABLE_TWO = "task_gram";
private static final String TASK_TABLE_THREE = "task_choose_particle";
private static final String TASK_ID = "_id";
private static final String TASK = "task";
private static final String ANSWER_ONE = "answer_one";
private static final String ANSWER_TWO = "answer_two";
private static final String ANSWER_THREE = "answer_three";
private static final String ANSWER_FOUR = "answer_four";
private static final String CORRECT_ANSWER = "correct_answer";
private static final String DB_NAME = "taskdatabase";
private static final String TABLE_RESULT_CHARACTER_MEANING = "result_character_meaning";
private static final String TABLE_RESULT_CHARACTER_READING = "result_gram";
private static final String TABLE_RESULT_CHOOSE_PARTICLE = "result_choose_particle";
private static final String RESULT_CORRECT_ANSWER = "correct_answer";
private static final String RESULT_INCORRECT_ANSWER = "incorrect_answer";
private static final String RESULT_TOTAL_RATE = "total_rate";
private static final int NUMBER_OF_ANSWERS = 4;
private static SQLiteDatabase sDataBase;
private int mQuestionsAndAnswersCountForTask;
private Cursor cursor;
public void connectAndOpenDataBase(Context context) {
ExternalDbOpenHelper dbOpenHelper = new ExternalDbOpenHelper(context, DB_NAME);
try {
sDataBase = dbOpenHelper.openDataBase();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public void executeData(ArrayList<QuestionAndAnswers> arrayQuestionAndAnswers) {
HashSet<Integer> randSet = new HashSet<>(mQuestionsAndAnswersCountForTask);
Random randNum = new Random();
while (randSet.size() < mQuestionsAndAnswersCountForTask) {
randSet.add(randNum.nextInt(cursor.getCount()));
}
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();
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]))));
arrayQuestionAndAnswers.get(i).
setAnswerTwo(cursor.getString(cursor.getColumnIndex(cursorColumns.
get(columnOfAnswer[1]))));
arrayQuestionAndAnswers.get(i).
setAnswerThree(cursor.getString(cursor.getColumnIndex(cursorColumns.
get(columnOfAnswer[2]))));
arrayQuestionAndAnswers.get(i).
setAnswerFour(cursor.getString(cursor.getColumnIndex(cursorColumns.
get(columnOfAnswer[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 void closeDatabase() {
if (sDataBase != null) {
sDataBase.close();
}
}
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;
}
}
private Integer[] randomLoadingAnswers() {
ArrayList<Integer> randomizeArray = new ArrayList<>(NUMBER_OF_ANSWERS);
for (int i = 0;
i < NUMBER_OF_ANSWERS;
i++) {
randomizeArray.add(i);
}
Random rand = new Random();
int randomNumber;
ArrayList<Integer> bufferRandomizeArray = new ArrayList<>(randomizeArray.size());
for (int i = 0;
i < NUMBER_OF_ANSWERS;
i++) {
randomNumber = rand.nextInt(randomizeArray.size());
bufferRandomizeArray.add(i, randomizeArray.get(randomNumber));
randomizeArray.remove(randomNumber);
}
for (int i = 0;
i < NUMBER_OF_ANSWERS;
i++) {
randomNumber = rand.nextInt(bufferRandomizeArray.size());
randomizeArray.add(i, bufferRandomizeArray.get(randomNumber));
bufferRandomizeArray.remove(randomNumber);
}
return randomizeArray.toArray(new Integer[randomizeArray.size()]);
}
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;
}
public String getResultTableForTaskTwo() {
return TABLE_RESULT_CHARACTER_READING;
}
public String getResultTableForTaskThree() {
return TABLE_RESULT_CHOOSE_PARTICLE;
}
public void saveResults(int correctAnswersCount, int incorrectAnswersCount, String tableName, String rate) {
ContentValues cv = new ContentValues();
cv.put(TASK_ID, 1);
cv.put(RESULT_CORRECT_ANSWER, correctAnswersCount);
cv.put(RESULT_INCORRECT_ANSWER, incorrectAnswersCount);
cv.put(RESULT_TOTAL_RATE, rate);
sDataBase.replace(tableName, null, cv);
closeDatabase();
}
public String getStatistics(String statisticTable, Context context) {
Cursor cursor = sDataBase.query(statisticTable,
new String[]{RESULT_CORRECT_ANSWER, RESULT_INCORRECT_ANSWER, RESULT_TOTAL_RATE},
null, null, null, null, null);
if (cursor.moveToFirst()) {
int correctAnswersCount = cursor.getInt(cursor.getColumnIndex(RESULT_CORRECT_ANSWER));
int incorrectAnswerCount = cursor.getInt(cursor.getColumnIndex(RESULT_INCORRECT_ANSWER));
String totalRate = cursor.getString(cursor.getColumnIndex(RESULT_TOTAL_RATE));
cursor.close();
return String.valueOf(context.getResources().
getString(R.string.correct_answers_text) + " " + correctAnswersCount + "rn" +
context.getResources().getString(R.string.incorrect_answers_text) + " " +
incorrectAnswerCount + "rn" + context.getResources().getString(R.string.rate) +
" " + totalRate);
} else {
return context.getResources().getString(R.string.no_data);
}
}
}
package com.lyubov.app.kotobaquiz.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.TypedValue;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.lyubov.app.kotobaquiz.R;
import com.lyubov.app.kotobaquiz.task.TaskTypes;
import com.lyubov.app.kotobaquiz.customization.BackgroundManager;
import com.lyubov.app.kotobaquiz.customization.SoundManager;
import com.lyubov.app.kotobaquiz.task.QuestionAndAnswersManager;
import com.lyubov.app.kotobaquiz.task.TaskLoader;
public class GameActivity extends Activity implements View.OnClickListener, TaskTypes {
private TaskLoader mTaskLoader;
private Button mBtnAnswerOne;
private Button mBtnAnswerTwo;
private Button mBtnAnswerThree;
private Button mBtnAnswerFour;
private TextView mTextTask;
private TextView mNumberQuestion;
private TextView mAnswerStatus;
private QuestionAndAnswersManager mArrayQuestionsAndAnswers;
private Handler mAnswerStatusHandler;
private int mNumberOfLesson;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game_layout);
init();
loadData();
mArrayQuestionsAndAnswers.setAnswersAndQuestion(mTextTask, mBtnAnswerOne,
mBtnAnswerTwo, mBtnAnswerThree, mBtnAnswerFour, mNumberQuestion, getBaseContext());
}
private void init() {
mTaskLoader = new TaskLoader();
mBtnAnswerOne = (Button) findViewById(R.id.answer_one);
mBtnAnswerTwo = (Button) findViewById(R.id.answer_two);
mBtnAnswerThree = (Button) findViewById(R.id.answer_three);
mBtnAnswerFour = (Button) findViewById(R.id.answer_four);
mTextTask = (TextView) findViewById(R.id.game_text_task);
mNumberQuestion = (TextView) findViewById(R.id.title_number_of_question);
mAnswerStatus = (TextView) findViewById(R.id.answer_status);
RelativeLayout game = (RelativeLayout) findViewById(R.id.game_background);
BackgroundManager.getInstance().setTheme(game);
mAnswerStatusHandler = new Handler();
mBtnAnswerOne.setOnClickListener(this);
mBtnAnswerTwo.setOnClickListener(this);
mBtnAnswerThree.setOnClickListener(this);
mBtnAnswerFour.setOnClickListener(this);
}
private Runnable mStatusAnswerRunnable = new Runnable() {
@Override
public void run() {
mAnswerStatus.setVisibility(View.INVISIBLE);
}
};
@Override
public void onClick(View v) {
if (SoundManager.getInstance().getState()) {
SoundManager.getInstance().playSoundClick(getBaseContext());
}
switch (v.getId()) {
case R.id.answer_one:
answerAQuestion(mBtnAnswerOne);
break;
case R.id.answer_two:
answerAQuestion(mBtnAnswerTwo);
break;
case R.id.answer_three:
answerAQuestion(mBtnAnswerThree);
break;
case R.id.answer_four:
answerAQuestion(mBtnAnswerFour);
break;
default:
break;
}
}
private void answerAQuestion(Button answerButton) {
setAnswerStatus(mArrayQuestionsAndAnswers.isCorrect(answerButton));
mArrayQuestionsAndAnswers.removeChosenAnswerAndQuestion();
if (!tryFinishTaskAndShowResult()) {
mArrayQuestionsAndAnswers.setAnswersAndQuestion(mTextTask, mBtnAnswerOne,
mBtnAnswerTwo, mBtnAnswerThree, mBtnAnswerFour, mNumberQuestion, getBaseContext());
}
}
private void loadData() {
(SelectTypeLessonActivity) тип выбраного урока
mNumberOfLesson = getIntent().getIntExtra("SEL_TASK", 0);
switch (mNumberOfLesson){
case GRAMMAR:
case CHOOSE_RIGHT_PARTICLE:
mTextTask.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getResources().getDimension(R.dimen.text_small));
break;
}
mTaskLoader.connectAndOpenDataBase(this);
mTaskLoader.setCursorForTaskLoad(mTaskLoader.getTableFromNumber(mNumberOfLesson));
mTaskLoader.setQuestionsAnswersCountForTask();
mArrayQuestionsAndAnswers =
new QuestionAndAnswersManager(mTaskLoader.getQuestionsAnswersCountForTask());
mTaskLoader.executeData(mArrayQuestionsAndAnswers.getArrayAnswersAndQuestions());
mTaskLoader.closeDatabase();
}
private void setAnswerStatus(boolean status) {
if (status) {
setCorrect();
} else {
setIncorrect();
}
updateAnswerStatusVisibleTimer();
}
private void setIncorrect() {
mAnswerStatus.setText(R.string.incorrect);
mAnswerStatus.setTextColor(getResources().
getColor(R.color.status_answer_incorrect_text_color));
mAnswerStatus.setBackgroundColor(getResources().
getColor(R.color.status_answer_incorrect_color));
}
private void setCorrect() {
mAnswerStatus.setText(R.string.correct);
mAnswerStatus.setTextColor(getResources().
getColor(R.color.status_answer_correct_text_color));
mAnswerStatus.
setBackgroundColor(getResources().getColor(R.color.status_answer_correct_color));
}
private void updateAnswerStatusVisibleTimer() {
mAnswerStatus.setVisibility(View.VISIBLE);
mAnswerStatusHandler.removeCallbacks(mStatusAnswerRunnable);
mAnswerStatusHandler.postDelayed(mStatusAnswerRunnable, 500);
}
private boolean tryFinishTaskAndShowResult() {
if (mArrayQuestionsAndAnswers.getArrayAnswersAndQuestions().isEmpty()) {
showResults();
exit();
return true;
}
return false;
}
private void showResults() {
Intent mResultsIntent = new Intent(GameActivity.this, ResultActivity.class);
mResultsIntent.putExtra("CORRECT_ANSWER_COUNT", mArrayQuestionsAndAnswers.getCorrectAnswersCount());
mResultsIntent.putExtra("INCORRECT_ANSWER_COUNT",
mArrayQuestionsAndAnswers.getIncorrectAnswersCount());
mResultsIntent.putExtra("RESULTS_TABLE_NAME_FOR_THIS_TASK", mNumberOfLesson);
startActivity(mResultsIntent);
}
private void exit() {
mBtnAnswerOne.setOnClickListener(null);
mBtnAnswerTwo.setOnClickListener(null);
mBtnAnswerThree.setOnClickListener(null);
mBtnAnswerFour.setOnClickListener(null);
mAnswerStatusHandler.removeCallbacksAndMessages(null);
mStatusAnswerRunnable = null;
mTaskLoader = null;
mArrayQuestionsAndAnswers = null;
finish();
}
@Override
public void onBackPressed() {
super.onBackPressed();
Intent mSelectLessonIntent = new Intent(GameActivity.this, SelectTypeLessonActivity.class);
startActivity(mSelectLessonIntent);
exit();
}
}
package com.lyubov.app.kotobaquiz.ui;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import com.lyubov.app.kotobaquiz.R;
import com.lyubov.app.kotobaquiz.customization.BackgroundManager;
import com.lyubov.app.kotobaquiz.customization.SoundManager;
public class MainActivity extends Activity implements View.OnClickListener {
private RelativeLayout mMain;
private Button mSettingsButton;
private Button mGameButton;
private Button mAboutButton;
private Button mExitButton;
private Button mStatisticButton;
private boolean mIsThemeChanged;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_menu_layout);
init();
}
private void init() {
BackgroundManager.getInstance().init(getBaseContext());
SoundManager.getInstance().init(getBaseContext());
SoundManager.getInstance().loadState();
mSettingsButton = (Button) findViewById(R.id.settings_button);
mGameButton = (Button) findViewById(R.id.game_button);
mAboutButton = (Button) findViewById(R.id.about_button);
mExitButton = (Button) findViewById(R.id.exit_button);
mStatisticButton = (Button) findViewById(R.id.statistic_button);
mMain = (RelativeLayout) findViewById(R.id.main_background);
mSettingsButton.setOnClickListener(this);
mGameButton.setOnClickListener(this);
mAboutButton.setOnClickListener(this);
mExitButton.setOnClickListener(this);
mStatisticButton.setOnClickListener(this);
BackgroundManager.getInstance().setTheme(mMain);
}
@Override
public void onClick(View view) {
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 goToSelectLessonActivity() {
Intent gameIntent = new Intent(MainActivity.this, SelectTypeLessonActivity.class);
startActivity(gameIntent);
}
private void goToStatisticsActivity() {
Intent statisticIntent = new Intent(MainActivity.this, StatisticsActivity.class);
startActivity(statisticIntent);
}
private void goToSettingActivity() {
Intent settingsIntent = new Intent(MainActivity.this, SettingsActivity.class);
startActivityForResult(settingsIntent, 1);
}
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();
}
private void exit() {
mAboutButton.setOnClickListener(null);
mExitButton.setOnClickListener(null);
mGameButton.setOnClickListener(null);
mSettingsButton.setOnClickListener(null);
mStatisticButton.setOnClickListener(null);
SoundManager.getInstance().deleteManager();
BackgroundManager.getInstance().deleteManager();
android.os.Process.killProcess(android.os.Process.myPid());
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null) {
return;
}
mIsThemeChanged = data.getBooleanExtra("SETTINGS_THEME", false);
}
@Override
public void onBackPressed() {
super.onBackPressed();
exit();
}
@Override
protected void onResume() {
super.onResume();
if (mIsThemeChanged) {
BackgroundManager.getInstance().setTheme(mMain);
}
}
}
package com.lyubov.app.kotobaquiz.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.lyubov.app.kotobaquiz.R;
import com.lyubov.app.kotobaquiz.customization.BackgroundManager;
import com.lyubov.app.kotobaquiz.customization.SoundManager;
import com.lyubov.app.kotobaquiz.task.TaskLoader;
public class ResultActivity extends Activity {
private int mCorrectAnswersCount;
private int mIncorrectAnswersCount;
private Button mOkButton;
private TextView mTextRate;
private int mTaskType;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result_layout);
init();
}
private void init() {
mOkButton = (Button) findViewById(R.id.button_results_ok);
TextView resultView = (TextView) findViewById(R.id.text_results);
mTextRate = (TextView) findViewById(R.id.text_rate);
RelativeLayout result = (RelativeLayout) findViewById(R.id.result_background);
BackgroundManager.getInstance().setTheme(result);
setDataFromIntents();
calculateRate();
resultView.setText(getResources().getString(R.string.correct_answers_text) + " " +
String.valueOf(mCorrectAnswersCount) + "rn" +
getResources().getString(R.string.incorrect_answers_text) + " "
+ String.valueOf(mIncorrectAnswersCount));
mOkButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (SoundManager.getInstance().getState()) {
SoundManager.getInstance().playSoundClick(getBaseContext());
}
saveResults(mCorrectAnswersCount, mIncorrectAnswersCount, mTaskType,
mTextRate.getText().toString());
exit();
}
});
}
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 saveResults(int correctAnswersCount, int incorrectAnswersCount, int tableTask, String rate) {
TaskLoader tLoader = new TaskLoader();
String tableName = tLoader.getResultTableFromNumberOfTask(tableTask);
tLoader.connectAndOpenDataBase(getBaseContext());
tLoader.saveResults(correctAnswersCount, incorrectAnswersCount, tableName, rate);
}
private void setRate(int drawable, String totalTextRate) {
ImageView mGraphicalRate = (ImageView) findViewById(R.id.graphical_rating);
mGraphicalRate.setImageResource(drawable);
mTextRate.setText(totalTextRate);
}
private void setDataFromIntents() {
mCorrectAnswersCount = getIntent().getIntExtra("CORRECT_ANSWER_COUNT", 0);
mIncorrectAnswersCount = getIntent().getIntExtra("INCORRECT_ANSWER_COUNT", 0);
mTaskType = getIntent().getIntExtra("RESULTS_TABLE_NAME_FOR_THIS_TASK", 0);
}
private void exit() {
mOkButton.setOnClickListener(null);
Intent mSelectLessonIntent =
new Intent(ResultActivity.this, SelectTypeLessonActivity.class);
startActivity(mSelectLessonIntent);
finish();
}
@Override
public void onBackPressed() {
super.onBackPressed();
exit();
}
}
package com.lyubov.app.kotobaquiz.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RelativeLayout;
import com.lyubov.app.kotobaquiz.R;
import com.lyubov.app.kotobaquiz.customization.BackgroundManager;
import com.lyubov.app.kotobaquiz.customization.SoundManager;
public class SelectTypeLessonActivity extends Activity {
private Intent mPlayIntent;
private Button mPlayButton;
private Button mBackButton;
private ListView mLessonsList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.select_lesson_layout);
init();
}
private void init() {
mPlayButton = (Button) findViewById(R.id.play_button);
mBackButton = (Button) findViewById(R.id.back_button);
mLessonsList = (ListView) findViewById(R.id.task_type_list);
RelativeLayout selectType = (RelativeLayout) findViewById(R.id.select_type_background);
mPlayIntent = new Intent(SelectTypeLessonActivity.this, GameActivity.class);
mLessonsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
if (SoundManager.getInstance().getState()) {
SoundManager.getInstance().playSoundClick(getBaseContext());
}
mPlayIntent.putExtra("SEL_TASK", i);
}
});
mPlayButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (SoundManager.getInstance().getState()) {
SoundManager.getInstance().playSoundClick(getBaseContext());
}
if (mPlayIntent != null) {
startActivity(mPlayIntent);
exit();
}
}
});
mBackButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
exit();
}
);
String[] taskTypeArray = getResources().getStringArray(R.array.task_types);
ArrayAdapter<String> adapter = new ArrayAdapter<>(getBaseContext(),
R.layout.select_lesson_list_view_element_layout, taskTypeArray);
mLessonsList.setAdapter(adapter);
mLessonsList.setItemChecked(0, true);
}
private void exit() {
mPlayButton.setOnClickListener(null);
mBackButton.setOnClickListener(null);
mLessonsList.setOnItemClickListener(null);
mPlayIntent = null;
finish();
} @Override
public void onBackPressed() {
super.onBackPressed();
exit();
}
}
package com.lyubov.app.kotobaquiz.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import com.lyubov.app.kotobaquiz.R;
import com.lyubov.app.kotobaquiz.customization.BackgroundManager;
import com.lyubov.app.kotobaquiz.customization.SoundManager;
import com.lyubov.app.kotobaquiz.customization.ThemeKeys;
public class SettingsActivity extends Activity implements ThemeKeys {
private RelativeLayout mSettings;
private RadioGroup mThemeGroup;
private RadioButton mOriginalButton;
private RadioButton mDarkButton;
private RadioButton mNeutralButton;
private CheckBox mSound;
private Button mBackButton;
private boolean isLoaded = false;
private boolean mIsThemeChanged;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_layout);
init();
}
private void init() {
mBackButton = (Button) findViewById(R.id.back_button);
mThemeGroup = (RadioGroup) findViewById(R.id.radio_theme);
mOriginalButton = (RadioButton) findViewById(R.id.radio_original);
mDarkButton = (RadioButton) findViewById(R.id.radio_dark);
mNeutralButton = (RadioButton) findViewById(R.id.radio_neutral);
mSettings = (RelativeLayout) findViewById(R.id.settings_background);
mSound = (CheckBox) findViewById(R.id.enable_sound);
loadSoundState();
loadRadioButtonChoise();
mBackButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
if (SoundManager.getInstance().getState()) {
SoundManager.getInstance().playSoundClick(getBaseContext());
}
exit();
}
});
mThemeGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedLang) {
if (SoundManager.getInstance().getState() && isLoaded) {
SoundManager.getInstance().playSoundClick(getBaseContext());
}
switch (checkedLang) {
case R.id.radio_original:
saveAndSetRadioButtonChoise(ORIGINAL_THEME_KEY);
break;
case R.id.radio_dark:
saveAndSetRadioButtonChoise(DARK_THEME_KEY);
break;
case R.id.radio_neutral:
saveAndSetRadioButtonChoise(NEUTRAL_THEME_KEY);
break;
}
}
});
mSound.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
saveSoundState(isChecked);
if (SoundManager.getInstance().getState() && isLoaded) {
SoundManager.getInstance().playSoundClick(getBaseContext());
}
}
});
isLoaded = true;
}
private void saveSoundState(boolean checked) {
SoundManager.getInstance().saveState(checked);
}
private void loadSoundState() {
mSound.setChecked(SoundManager.getInstance().loadState());
}
private void saveAndSetRadioButtonChoise(int radioButtonId) {
BackgroundManager.getInstance().saveTheme(radioButtonId);
BackgroundManager.getInstance().setTheme(mSettings);
if (!mIsThemeChanged) {
mIsThemeChanged = true;
}
}
private void loadRadioButtonChoise() {
setRadioButtonChoise(BackgroundManager.getInstance().loadTheme());
BackgroundManager.getInstance().setTheme(mSettings);
}
private void setRadioButtonChoise(int radioButtonId) {
switch (radioButtonId) {
case 1:
mOriginalButton.setChecked(true);
break;
case 2:
mDarkButton.setChecked(true);
break;
case 3:
mNeutralButton.setChecked(true);
break;
default:
break;
}
}
private void exit() {
mThemeGroup.setOnCheckedChangeListener(null);
mSound.setOnCheckedChangeListener(null);
mBackButton.setOnClickListener(null);
Intent mainMenuIntent = new Intent();
mainMenuIntent.putExtra("SETTINGS_THEME", mIsThemeChanged);
setResult(1, mainMenuIntent);
finish();
}
@Override
public void onBackPressed() {
super.onBackPressed();
exit();
}
}
package com.lyubov.app.kotobaquiz.ui;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RelativeLayout;
import com.lyubov.app.kotobaquiz.R;
import com.lyubov.app.kotobaquiz.customization.BackgroundManager;
import com.lyubov.app.kotobaquiz.customization.SoundManager;
import com.lyubov.app.kotobaquiz.task.TaskLoader;
public class StatisticsActivity extends Activity {
private Button mBackButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.statistics_layout);
init();
}
private void init() {
mBackButton = (Button) findViewById(R.id.statistic_back_button);
RelativeLayout statistics = (RelativeLayout) findViewById(R.id.statistics_background);
BackgroundManager.getInstance().setTheme(statistics);
mBackButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (SoundManager.getInstance().getState()) {
SoundManager.getInstance().playSoundClick(getBaseContext());
}
exit();
}
});
ListView statisticsList = (ListView) findViewById(R.id.statistic_result_view);
ArrayAdapter mAdapter = new ArrayAdapter<>(getBaseContext(),
R.layout.statistics_element_layout, getmStatistics());
statisticsList.setAdapter(mAdapter);
}
private String[] getmStatistics() {
TaskLoader statisticLoader = new TaskLoader();
statisticLoader.connectAndOpenDataBase(getBaseContext());
String taskStatisticOne = statisticLoader.getStatistics(statisticLoader.
getResultTableForTaskOne(), getBaseContext());
String taskStatisticTwo = statisticLoader.getStatistics(statisticLoader.
getResultTableForTaskTwo(), getBaseContext());
String taskStatisticThree = statisticLoader.getStatistics(statisticLoader.
getResultTableForTaskThree(), getBaseContext());
statisticLoader.closeDatabase();
return new String[]{taskStatisticOne, taskStatisticTwo, taskStatisticThree};
}
private void exit() {
mBackButton.setOnClickListener(null);
finish();
}
@Override
public void onBackPressed() {
super.onBackPressed();
exit();
}
}
Приложение 3
Исходный код xml-разметки интерфейса
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android
android:layout_width="match_parent" android:layout_height="match_parent"
style="@style/LayoutStyle"
android:id="@+id/game_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/answer_status"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:textSize="@dimen/text_large"
android:gravity="center_horizontal"
android:visibility="invisible" />
<TextView
android:layout_width="match_parent"
android:layout_height="@dimen/game_text_task_height"
android:id="@+id/game_text_task"
style="@style/GameTextTask"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="false"
android:layout_below="@+id/title_number_of_question"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_width="match_parent"
android:id="@+id/title_number_of_question"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="false"
android:src="@drawable/game_question_title"
android:scaleType="fitXY"
style="@style/QuestionNumberStyle" />
<Button
style="@style/GameButtons"
android:id="@+id/answer_one"
android:cropToPadding="false"
android:singleLine="false"
android:layout_below="@+id/game_text_task"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="false"/>
<Button
style="@style/GameButtons"
android:id="@+id/answer_two"
android:singleLine="false"
android:layout_below="@+id/game_text_task"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="false"/>
<Button
style="@style/GameButtons"
android:id="@+id/answer_three"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="false"
android:layout_below="@+id/answer_one" />
<Button
style="@style/GameButtons"
android:id="@+id/answer_four"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="false"
android:layout_below="@+id/answer_two" />
</RelativeLayout>
<RelativeLayout 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"
tools:context=".MainMenu"
android:clickable="false"
style="@style/LayoutStyle"
android:id="@+id/main_background">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/title_height"
android:id="@+id/title_image"
android:layout_centerHorizontal="true"
android:src="@drawable/title_main"
android:scaleType="fitCenter" />
<ImageView
android:id="@+id/main_head_divider"
android:layout_below="@+id/title_image"
style="@style/DividerStyle" />
<LinearLayout
android:orientation="vertical"
android:layout_width="@dimen/buttons_layout_main_width"
android:layout_height="@dimen/buttons_layout_main_height"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:id="@+id/button_layout"
android:layout_below="@+id/main_head_divider"
android:layout_marginTop="@dimen/elements_divider_margin_top">
<Button
android:layout_width="match_parent"
android:id="@+id/game_button"
style="@style/MainMenuButtonsStyle"
android:text="@string/start" />
<View
android:layout_height="@dimen/divider_height"
android:layout_width="match_parent"
android:id="@+id/customview1" />
<Button
android:layout_width="match_parent"
android:text="@string/statistic"
android:id="@+id/statistic_button"
style="@style/MainMenuButtonsStyle" />
<View
android:layout_height="@dimen/divider_height"
android:layout_width="match_parent"
android:id="@+id/customview4" />
<Button
android:layout_width="match_parent"
android:text="@string/settings"
android:id="@+id/settings_button"
style="@style/MainMenuButtonsStyle" />
<View
android:layout_height="@dimen/divider_height"
android:layout_width="match_parent"
android:id="@+id/customview2"
android:focusableInTouchMode="false" />
<Button
android:layout_width="match_parent"
android:text="@string/about"
android:id="@+id/about_button"
style="@style/MainMenuButtonsStyle" />
<View
android:layout_height="@dimen/divider_height"
android:layout_width="match_parent"
android:id="@+id/customview3"
android:focusableInTouchMode="false" />
<Button
android:layout_width="match_parent"
android:text="@string/exit"
android:id="@+id/exit_button"
style="@style/MainMenuButtonsStyle" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/button_layout"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:id="@+id/main_menu_picture">
<ImageView
android:layout_width="@dimen/pictures_width"
android:layout_height="@dimen/pictures_height"
android:id="@+id/cat_picture"
android:src="@drawable/main_menu_picture_cat"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true" />
<ImageView
android:layout_width="@dimen/pictures_width"
android:layout_height="@dimen/pictures_height"
android:id="@+id/character_picture"
android:src="@drawable/main_menu_picture_character"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" />
</RelativeLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android
android:layout_width="match_parent" android:layout_height="match_parent"
style="@style/LayoutStyle"
android:id="@+id/result_background">
<TextView
android:layout_width="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/text_results"
style="@style/ResultViewStyle"
android:layout_below="@+id/results_head_divider"
android:layout_marginTop="@dimen/elements_divider_margin_top" />
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/title_height"
android:id="@+id/title_results"
android:src="@drawable/result_head"
android:layout_centerHorizontal="true"
android:scaleType="fitCenter" />
<ImageView
style="@style/DividerStyle"
android:id="@+id/results_head_divider"
android:layout_below="@+id/title_results" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rate"
android:layout_below="@+id/text_results"
android:layout_centerHorizontal="true"
android:gravity="center"
android:background="@drawable/game_border">
<ImageView
android:layout_width="@dimen/graphical_rate_width"
android:layout_height="@dimen/graphical_rate_height"
android:id="@+id/graphical_rating"
android:layout_marginTop="@dimen/results_rate_margin" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text_rate"
android:gravity="center_horizontal"
android:textSize="@dimen/text_medium"
android:textColor="@color/result_rate_text_color"
android:paddingRight="@dimen/text_rate_padding_left"
android:paddingLeft="@dimen/text_rate_padding_left"
android:layout_marginBottom="@dimen/results_rate_margin" />
</LinearLayout>
<Button
android:layout_width="@dimen/buttons_width"
android:layout_height="@dimen/button_height"
android:text="@string/ok"
android:id="@+id/button_results_ok"
style="@style/MainMenuButtonsStyle"
android:layout_centerHorizontal="true"
android:layout_below="@+id/rate"
android:layout_marginTop="@dimen/button_result_ok_margin_top" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android
android:layout_width="match_parent" android:layout_height="match_parent"
style="@style/LayoutStyle"
android:id="@+id/select_type_background">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/title_height"
android:id="@+id/title_select_ex"
android:src="@drawable/select_exercise_head"
android:layout_centerHorizontal="true" />
<ImageView
android:id="@+id/select_lesson_head_divider"
style="@style/DividerStyle"
android:layout_below="@+id/title_select_ex" />
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/task_type_list"
android:layout_below="@+id/select_lesson_head_divider"
android:background="@drawable/select_lesson_border"
android:padding="@dimen/list_view_padding"
android:choiceMode="singleChoice"
android:layout_marginTop="@dimen/elements_divider_margin_top" />
<ImageView
android:layout_width="@dimen/geisha_pic_width"
android:layout_height="@dimen/geisha_pic_height"
android:id="@+id/geisha_pic"
android:src="@drawable/picture_geisha_select_layout"
android:layout_centerInParent="true"
android:layout_marginTop="@dimen/geisha_pic_margin_top"
android:layout_below="@+id/task_type_list" />
<Button
android:layout_width="@dimen/buttons_width"
android:layout_height="@dimen/button_height"
android:text="@string/play"
android:id="@+id/play_button"
android:layout_below="@+id/geisha_pic"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/geisha_pic_margin_top"
style="@style/MainMenuButtonsStyle" />
<Button
android:layout_width="@dimen/buttons_width"
android:layout_height="@dimen/button_height"
android:text="@string/back"
android:id="@+id/back_button"
style="@style/MainMenuButtonsStyle"
android:layout_below="@+id/play_button"
android:layout_marginTop="@dimen/geisha_pic_margin_top"
android:layout_centerHorizontal="true" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android=http://schemas.android.com/apk/res/android
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/TaskTypeRadioButtonStyle"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:padding="@dimen/list_view_padding" />
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android
android:layout_width="match_parent" android:layout_height="match_parent"
style="@style/LayoutStyle"
android:id="@+id/settings_background">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/title_height"
android:id="@+id/settings_title"
android:src="@drawable/title_settings"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:scaleType="fitCenter" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/divider_one"
android:src="@drawable/divider"
android:layout_marginTop="@dimen/divider_margin_top"
android:layout_below="@+id/radio_theme" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/choose_lang"
android:id="@+id/choose_lang_text_view"
Подобные документы
Язык как средство общения. Нововведения в немецком языке. Компьютеризация обучения иностранному языку. Создание системно-тематического мультимедиа комплекса. Возможности тестирования уровня владения иностранным языком.
статья [17,7 K], добавлен 18.06.2007Понятие компетентностной модели. Технология моделирования как продуктивный способ познания объектов и явлений. Модель Хомского. Три универсальные структуры коммуникативной компетенции. Интерпретация понятия "владение языком" в отечественной лингвистике.
статья [23,4 K], добавлен 11.07.2013Знакомство с классом, отношение к изучению иностранного языка. Успеваемость и соответствие уровня владения иностранным языком программным требованиям. Индивидуальная работа с учениками. Проведение уроков английского и китайского языка; внеклассная работа.
отчет по практике [258,8 K], добавлен 14.04.2016Технология визуализации при обучении русскому языку как иностранному на этапе довузовской подготовки. Учет национальных особенностей студентов при обучении. Оценка уровня сформированности коммуникативной компетенции у студентов начального этапа обучения.
дипломная работа [4,6 M], добавлен 29.07.2017Тестовый контроль в процессе обучения иностранному языку. Методика организации, проведения контроля, составление тестов. Тестовый контроль уровня владения лексикой. Использование тестов для выявления сформированности рецептивного грамматического навыка.
дипломная работа [59,3 K], добавлен 10.12.2011Влияние психологических и возрастных особенностей младших школьников на овладение иностранным языком. Система обучения на начальном этапе. Характеристика методик обучения фонетике, лексике, грамматике. Пути организации занятий с младшими школьниками.
курсовая работа [54,5 K], добавлен 08.11.2011Приемы обучения разговорной диалогической эвенской речи учащихся начальных классов. Трудности владения родным эвенским языком учащихся 2 класса. Анализ и практическое апробирование заданий для обучения родной речи школьников на уроках эвенского языка.
дипломная работа [63,6 K], добавлен 11.02.2012Уровни владения языком, необходимые для языковой адаптации иностранных специалистов, занятых на промышленных предприятиях города. Методика интенсивного обучения русскому языку иностранных специалистов, занятых на промышленных предприятиях города.
дипломная работа [79,2 K], добавлен 30.10.2013Общая характеристика примерной программы по русской литературе для школ с родным (нерусским) языком обучения. Реализация принципа "диалога культур". Место учебного предмета в федеральном базисном учебном плане. Требования к уровню подготовки выпускников.
методичка [53,6 K], добавлен 17.12.2009Воспитание человека, обладающего творческой активностью. Методика определения и анализ уровня творческой самореализации студентов во время профессиональной подготовки. Разработка тестирующей программы по определению уровня творческого потенциала.
дипломная работа [611,7 K], добавлен 21.06.2011