週末のアプリ作成

androidアプリ個人開発者の実態を報告します。アプリの収入も公開中です♪

アプリ作成 手順4「基本処理の実装 2」 サンプルコード紹介

こんにちは、TF's appsです。

今回の記事は娘のための学習アプリ作成 第4弾です。

前回に引き続き基本処理の実装を進めました。

基本動作ができた様な状態です。

 

今回実装した点

・画面上部のステータス欄の表示

・ボタンの表示(はじめるとつぎへの切替)

・11個の漢字をすべて完了した後の表示

 

1.基本実装の紹介

1-1.画面上部のステータス表示に対応

アプリ起動直後は「はじめるを押してね☆」を表示します。

f:id:TFs_apps:20200209092532p:plain

 

1-2.プレイ中の画面表示

漢字を検索すると画面上部のステータスは「つぎへを押してね☆」に変わります。

また「はじめる」のボタンも「つぎへ」に変わります。

音読み、訓読み、画数、例文をヒントにこたえの漢字を考える。

f:id:TFs_apps:20200209092552p:plain


1-3.こたえの画面

「こたえ」ボタンを押すと

答えの「漢字」がポップアップ表示されます。

f:id:TFs_apps:20200209092611p:plain

 

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();
}

}