URLを受け取り、そのテキストコンテンツをEditTextビューに表示するコードスニペットを作成しようとしています。URLからttyファイルをAndroidハニーコムのEditTextに読み込み、NetworkOnMainThreadExceptionを取得します。
Android Honeycomb: Fragment not able to start AsyncTask?
をそれが動作していないよう:これは私は、このような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();
}
});
をそう置くことによって:URLをフェッチするためのボタンがクリックされたときに実行される
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