當我的AsyncTask
完成時,我在TextView
中顯示信息。如何從AsyncTask onPostExecute顯示Toast?
@Override protected void onPostExecute(Void x)
{
MainActivity.lblLastLetterProcessed.setText("A-Z loaded");
}
像這樣:
public static void setLastLetterProcessed(char c){
lblLastLetterProcessed.setText("" + c);
}
我寧願通過Toast
給信息,但Toast
需要Context
。
protected void onPostUpdate(Integer... progress)
{
Toast toast= Toast.makeText(???????????, "Loaded A-Z", Toast.LENGTH_LONG);
toast.show();
}
所以我寫了popupMessage
:
void popupMessage(String text)
{
SpannableStringBuilder altText = new SpannableStringBuilder(text);
altText.setSpan(new ForegroundColorSpan(0xFFCC5500), 0, altText.length(), 0);
int duration = Toast.LENGTH_SHORT;
Context context = getApplicationContext();
Toast toast = Toast.makeText(context, altText, duration);
toast.setGravity(Gravity.TOP | Gravity.CENTER, 0, 0);
toast.show();
}
但由於popupMessage
不是static
我不能從onPostUpdate
調用它。
如果我使它static
,我不能使用getApplicationContext
。如果我添加Context
作爲參數,我不能從onPostUpdate
通過Context
。
谷歌搜索沒有提供任何我可以實現的答案。
我該怎麼辦?
http://stackoverflow.com/questions/28659165/toast-in-asynctask-in-non-activity-cla ss – codeMagic
^那,並檢查我的答案 –