1からandroidアプリを作っていく。第4弾です。いつも通りソースコードを全公開しています。
こんにちは、TF's appsです。
今回の記事は娘のための学習アプリ作成 第4弾です。
前回に引き続き基本処理の実装を進めました。
基本動作ができた様な状態です。
今回実装した点
・画面上部のステータス欄の表示
・ボタンの表示(はじめるとつぎへの切替)
・11個の漢字をすべて完了した後の表示
1.基本実装の紹介
1-1.画面上部のステータス表示に対応
アプリ起動直後は「はじめるを押してね☆」を表示します。
1-2.プレイ中の画面表示
漢字を検索すると画面上部のステータスは「つぎへを押してね☆」に変わります。
また「はじめる」のボタンも「つぎへ」に変わります。
音読み、訓読み、画数、例文をヒントにこたえの漢字を考える。
1-3.こたえの画面
「こたえ」ボタンを押すと
答えの「漢字」がポップアップ表示されます。
1-4.次のステップ
基本処理の実装は終わりましたので
あとはアイコン作成や漢字をひたすら登録するだけです。
漢字がどれくらいあるのか調べたところ
・・・
2年生が覚える漢字の個数
・・・
・・・
なんと
・・・
・・・
160個もあります
・・・
・・・
まだ現在入力できているのは11個です(涙)
昨晩80個入力したのですが
2時間弱程度かかっています(汗)
う~ん
頑張りますね。すべては我が娘のため。
2.ソースコードの紹介
MainActivity.java
package tfsapps.kanjicard;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private KanjiTable _kanji_table; //漢字検索テーブル
private Kanji _display_kanji; //表示中の漢字
private String _display_status; //表示中のアプリ説明文
private String _display_progress; //表示中の進捗情報
android.support.v7.app.AlertDialog.Builder popup;
private TextView popuptext;
private boolean isStart = false;
private int disp_count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//漢字テーブルの作成
_kanji_table = new KanjiTable();
DisplayScreen();
}
/* アプリ画面の表示 */
public void DisplayScreen()
{
TextView btn_start = (TextView) findViewById(R.id.btn_start);
TextView text_status = (TextView) findViewById(R.id.text_status);
TextView text_status2 = (TextView) findViewById(R.id.text_status2);
TextView text_onyomi = (TextView) findViewById(R.id.text_onyomi);
TextView text_kunyomi = (TextView) findViewById(R.id.text_kunyomi);
TextView text_kakusuu = (TextView) findViewById(R.id.text_kakusuu);
TextView text_exp = (TextView) findViewById(R.id.text_exp);
String txt1 = ""; //onyomi
String txt2 = ""; //kunyomi
String txt3 = ""; //kunyomi
String txt4 = ""; //kakusuu
if (isStart == false)
{
btn_start.setText("はじめる");
text_status.setText("「はじめる」を押してね☆");
text_status2.setText("");
}
else
{
btn_start.setText("つぎへ");
text_status.setText("「つぎへ」を押してね☆");
text_status2.setText("いま:"+ disp_count + "個目 / ぜんぶ:11個");
txt1 = _display_kanji.on_yomi;
txt2 = _display_kanji.kun_yomi;
txt3 = _display_kanji.kaku_suu;
txt4 = _display_kanji.exsample;
}
text_onyomi.setText(txt1);
text_kunyomi.setText(txt2);
text_kakusuu.setText(txt3);
text_exp.setText(txt4);
}
/* はじめる or 次へ */
public void onStart(View view) {
disp_count++; //何個目で漢字であるかのカウンター
if (isStart == false) //起動画面か否か
{
isStart = true;
}
//漢字検索
_display_kanji = _kanji_table.KanjiTableSearch();
/* 検索終了したら、全ての漢字が検索終了したら */
if (_display_kanji == null) {
isStart = false;
disp_count = 0;
_kanji_table.KanjiTableSearchReset();
}
DisplayScreen();
}
/* こたえ */
public void onResult(View view) {
if (isStart == false)
{
return;
}
popuptext = new TextView(this);
popuptext.setText(_display_kanji.kanji);
popuptext.setGravity(Gravity.CENTER);
popuptext.setTextSize(90);
popup = new android.support.v7.app.AlertDialog.Builder(this).setView(popuptext);
popup.setTitle("こたえの漢字");
// popup.setView(popuptext);
// popup.setMessage(_display_kanji.kanji);
popup.setPositiveButton("OK", null);
popup.show();
}
}