我想在textView中發佈我的AsyncTask(一個字符串)的結果。在AsyncTask中獲取TextView - Android
這裏是我公司主營:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ReadRss readRss=new ReadRss(this);
readRss.execute();
......
}
這裏是我的AsyncTask:
public class ReadRss extends AsyncTask<Void,Void,Void> {
public ReadRss(Context context){
}
@Override
protected void onPreExecute() {
}
@Override
protected void onPostExecute(Void aVoid) {
}
@Override
protected Void doInBackground(Void... params) {
ProcessXml();
return null;
}
private void ProcessXml() {
//HERE CREATE MY STRING
String myresult="example";
TextView txt_ris = (TextView)findViewById(R.id.txt_ris); <---HOW CAN I DO THIS?
txt_ris.setText(myresult);
}
}
}
}
FindViewById不要在工作的AsyncTask這樣?我怎樣才能TextView的在這裏? 也許我可以在AsyncTask中將它作爲paramiter傳遞,語法是什麼?
移動代碼編輯postExecute – W0rmH0le
內的文本視圖不能更改從後臺線程的UI無論如何,即使你傳遞的TextView作爲擴聲rameter。您可以使用[EventBus](https://github.com/greenrobot/EventBus)在獲取數據時發佈事件,在您的活動中監聽該事件,並在該事件中更改文本。 – Vucko
我不能將字符串返回到主?你可以做一個EventBus的例子嗎?在主線程上調用onPreExecute()和onPostExecute()方法調用 – GMX