2012-07-10 46 views
0
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(「解讀...這可能需要一分鐘」);TextText上的setText()有時僅適用於(Android)

如果代碼是as-is,那麼這行不做任何事,但是,如果我拿走代碼的最後一行answerField.setText(Unscramble.go(tField.getText()+「」,textfile) );它的作品發現和TextView說「解讀......這可能需要一分鐘」

目標是讓它有該消息,直到程序完成解讀,然後它會有結果。

任何幫助將非常感激,因爲我不知道我在做什麼或爲什麼發生這種情況。

回答

2

問題是UI不會在第一次調用setText和第二次調用之間更新。 @AVD提到的一種解決方案是使用Toast

我相信推薦的另一種解決方案是使用AsyncTask。這裏的想法是將您的文本設置爲onPreExecute中的「解讀」消息,然後在doInBackground中運行您的主要任務,最後將文本設置爲onPostExecute中的Unscramble.*字符串。

我上面提供的文檔鏈接在那裏有一個很棒的AsyncTask代碼,它可以被處理以處理任何事情。

+0

好吧,與AsyncTask一起去,謝謝! – TheN33k 2012-07-10 03:26:39

+0

如果它解決了您的問題(左邊的小複選標記),請不要忘記將答案標記爲正確。它可以幫助他人找到答案,並鼓勵其他人幫助你解決未來的問題。 :) – Eric 2012-07-10 03:48:42

相關問題