我正在嘗試編寫一段代碼,它需要一個URL並將其文本內容顯示到EditText視圖。這不順利,我身邊,我認爲答曰如使從這裏描述的的AsyncTask我的網絡電話等環節粉碎:從URL中將txt文件讀取到Android Honeycomb上的EditText中,獲取NetworkOnMainThreadException
Android Honeycomb: Fragment not able to start AsyncTask?
,但似乎並沒有工作。這實際上是一個函數(稱爲另一個函數),這就是我正在嘗試使用的所有函數。這些功能都貼的完整性:
public static InputStream getInputStreamFromUrl(String url){
InputStream contentStream = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(url));
contentStream = response.getEntity().getContent();
} catch(Exception e){
e.printStackTrace();
}
return contentStream;
}
public static String getStringFromUrl(String url) {
BufferedReader br = new BufferedReader(new InputStreamReader(getInputStreamFromUrl(url)));
StringBuffer sb = new StringBuffer();
try{
String line = null;
while ((line = br.readLine())!=null){
sb.append(line);
}
}catch (IOException e){
e.printStackTrace();
}
return sb.toString();
}
而這些從打電話給我:
retrieveURLReferenceBtn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
new FragmentHttpHelper().execute();
}
});
所以通過將:按鈕提取網址被點擊時執行
private class FragmentHttpHelper extends AsyncTask<Void, Void, Boolean>{
protected void onPostExecute(Boolean result) {
contractTextTxt.setText(getStringFromUrl(urlReferenceTxt.getText().toString()));
}
@Override
protected Boolean doInBackground(Void... params) {
// TODO Auto-generated method stub
return true;
}
}
在asynctask中的東西我以爲我打算繞過蜂窩3.0 NetworkOnMainThreadException但它似乎不是。任何想法接下來要嘗試什麼?
這樣做,現在我只需要弄清楚如何使用換行符將所返回的字符串渲染到Android''EditView'視圖中。 – Codejoy