我是android的新手.我需要从Web上读取文本文件并显示该文本文件.是否有可能直接在android中查看文本文件.或者如何在android textview中阅读和显示文本文件?
Bad*_*llz 21
使用 DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httppost = new HttpGet("http://www.urlOfThePageYouWantToRead.nl/text.txt");
HttpResponse response = httpclient.execute(httppost);
HttpEntity ht = response.getEntity();
BufferedHttpEntity buf = new BufferedHttpEntity(ht);
InputStream is = buf.getContent();
BufferedReader r = new BufferedReader(new InputStreamReader(is));
StringBuilder total = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
total.append(line + "\n");
}
TextView.setText(total);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
@BadSkillz是正确的,但在API 9中它出错:
android.os.NetworkOnMainThreadException
Run Code Online (Sandbox Code Playgroud)
因为您必须在另一个线程中进行网络操作,因为主线程中的网络会使您的应用程序在任何请求的持续时间内无响应,因此您可以将此类添加到您的活动中:
private class GetStringFromUrl extends AsyncTask<String, Void, String> {
ProgressDialog dialog ;
@Override
protected void onPreExecute() {
super.onPreExecute();
// show progress dialog when downloading
dialog = ProgressDialog.show(MainActivity.this, null, "Downloading...");
}
@Override
protected String doInBackground(String... params) {
// @BadSkillz codes with same changes
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(params[0]);
HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
BufferedHttpEntity buf = new BufferedHttpEntity(entity);
InputStream is = buf.getContent();
BufferedReader r = new BufferedReader(new InputStreamReader(is));
StringBuilder total = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
total.append(line + "\n");
}
String result = total.toString();
Log.i("Get URL", "Downloaded string: " + result);
return result;
} catch (Exception e) {
Log.e("Get Url", "Error in downloading: " + e.toString());
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
// TODO change text view id for yourself
TextView textView = (TextView) findViewById(R.id.textView1);
// show result in textView
if (result == null) {
textView.setText("Error in downloading. Please try again.");
} else {
textView.setText(result);
}
// close progresses dialog
dialog.dismiss();
}
}
Run Code Online (Sandbox Code Playgroud)
并在每次你想要的时候使用吹线:
new GetStringFromUrl().execute("http://www.google.com/");
Run Code Online (Sandbox Code Playgroud)
通过帮助@Leandros
| 归档时间: |
|
| 查看次数: |
27066 次 |
| 最近记录: |