TextView上的setText()有时只能工作(Android)

时间:2012-07-10 03:14:03

标签: android text textview

try {
    answerField.setText("Unscrambling...This may take a minute");
    BufferedInputStream(getAssets().open("wordlist.txt"));
    BufferedInputStream[] textfile = new BufferedInputStream[28];
    for(int i = 0; i<28; i++){
        textfile[i] = new BufferedInputStream(getAssets().open(i+1+".txt"));
        }
    answerField.setText(Unscramble.go(tField.getText()+"", textfile));

我的问题在于answerField.setText行(“解读......这可能需要一分钟”);

如果代码是原样,那么这行什么也不做,但是,如果我拿掉代码的最后一行answerField.setText(Unscramble.go(tField.getText()+“”,textfile)) ;它可以找到并且TextView说“解读...这可能需要一分钟”

目标是让它在程序完成解密之前获得该消息,然后它将得到结果。

任何帮助都会非常感激,因为我不知道我在做什么或为什么会这样。

1 个答案:

答案 0 :(得分:2)

问题是UI在第一次调用setText和第二次调用之间没有更新。正如@AVD所提到的,一种解决方案是使用Toast

我认为另一种解决方案是使用AsyncTask。这里的想法是将你的文字设置为&#34;解读&#34; onPreExecute中的邮件,然后在doInBackground中运行您的主要任务,最后将文本设置为Unscramble.*中的onPostExecute字符串。

我上面提供的文档链接中有一个很棒的AsyncTask代码,可以操作它来处理任何事情。