※技術メモです
できないことは、しょーがない。
KolitonとかFulterとか新しいこと覚えたらできるんだけど、今、時間無いんだから、小手先でやる方がいい。
英語の文法のテキスト確認したら、多くても14単語ぐらいだったし。
どうせ、自分のこどもしか使わないアプリだ。
つーか、文字書くのが苦痛じゃない子だったら、こんなことしてないわ…
■ ■ ■
というぐちを書きつつ、Javaでシャッフルのメモです。
①英文を半角スペースで切り分け
②順番ばらばらにして、ボタンで並べる
というのを実現したいわけです。
●半角スペースで切り分け
→String[] KaitoBtnString = tmpKai.split(" ");
※tmpKaiが英文文字列
※KaitoBtnStringが切り分けられたデータが入る配列
で、できて、次は順番をばらばらにする方法ですが、「Random」でやるか「Collections.shuffle」でやるか。
沢山のデータの中から1つ選ぶなら、Randomだけど、今回は全部をまぜまぜしたいので、shuffleかな?
●配列をシャッフルする
→ List<String> W_list = Arrays.asList(KaitoBtnString);
Collections.shuffle(W_list);
W_list.toArray(KaitoBtnString);
※List型に一度入れ込む
※シャッフルする
※もとの配列に戻す(え、戻せるの?って感じ)
●ボタンに設定する。ベタベタに設定するなら…
→btn_word1.setText(KaitoBtnString[0]);
だが、ループにしたいんじゃよ…
何単語なのかは英文によりけりなんじゃよ…
→KaitoBtnString[0]の数字「0」のトコをi(変数)にすればいい
btn_word1の数字「1」のトコをiにすることはできない。変数名だから。
ということで、古いアプリのソースを見て何やってたか確認したメモ
onCreateのところで、設定するボタン群のIdの数字を配列で保持する
int[] WordBtn_ID;
WordBtn_ID = new int[] {R.id.btn_word1, R.id.btn_word2, R.id.btn_word3, R.id.btn_word4};
※なぜ、Private int[] WordBtn_ID; じゃないのかは、分からないがこれで動く
ボタンに設定するところは、保持してる配列から該当のIdの数字を取得して対称ボタンを確定させる
確定させたボタンに文字列セットする
Button wordButton = findViewById(WordBtn_ID[0]);
wordButton.setText(KaitoBtnString[0]);
※これで、ループにする時、数字「0」のトコをi(変数)にできる
よし、これで、TextViewを14個作れば力技解決しそう。
英文の単語数が少なかったら、Visibleをfalseで消そう