0

我正在为 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 中绘制他们得到的分数,例如 +3 然后让它淡出?这是我的 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);
            }
        }
    }
4

2 回答 2

1

由于Android中的单线程模型,只有主线程可以更新UI,您可以尝试相同

 runOnUiThread(new Runnable()
{
    public void run() 
    {}
}

方法。

于 2013-09-14T07:00:29.223 回答
0

而是使用敬酒消息。它不会影响您的用户界面。

于 2013-09-14T06:56:43.160 回答