私はAndroid用の単語ゲームを作成しています.基本的に、ユーザーが何かを正しく入力するたびに、アプリケーションのスコアを更新しています.画面にスコアを表示して、大きく表示してからゆっくりとフェードアウトして取得したい.小さくて、どうすればいいですか?AsyncTask クラスに実装することは可能ですか? これは、入力された単語が正しいかどうかを確認するために使用している方法です。
public class checkWord extends AsyncTask<String, String, Void> {
private String c;
@Override
protected Void doInBackground(String... arg0) {
int size = correctWords.size();
String word = arg0[0];
for (int i = 0; i < size; i++) {
if (word.equalsIgnoreCase(correctWords.get(i))) {
publishProgress("bad");
}
}
try {
c = bufferedReader.readLine();
while (c != null && !c.equalsIgnoreCase(word)) {
c = bufferedReader.readLine();
}
if (c != null) {
correctWords.add(0, word);
score += word.length();
publishProgress("good");
} else {
incorrectWords.add(0, word);
publishProgress("bad");
}
} catch (IOException e) {
e.printStackTrace();
}
closeWordFile();
openWordFile();
return null;
}
とにかく、publishProgress にパラメーターを渡して、onProgressUpdate で取得したスコアを描画することはできますか? これは私の onProgressUpdate で、タイマーに秒を追加し、有効な単語であるかどうかにかかわらず音を鳴らします
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
if (values[0].matches("bad"))
failureSound.start();
if (values[0].matches("good")) {
successSound.start();
if (countDownTimer != null) {
countDownTimer.cancel();
startTimer(countDownTime + c.length() / 2);
}
}
}