使用AsyncTask从网上获取一个网页,在一个TextView中将其源代码显示出来
来源:互联网 发布:影楼网络销售工资待遇 编辑:程序博客网 时间:2024/06/06 19:26
使用AsyncTask从网上获取一个网页,在一个TextView中将其源代码显示出来
package test.list;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.util.ArrayList;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import android.app.Activity;import android.app.ProgressDialog;import android.content.Context;import android.content.DialogInterface;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class NetworkActivity extends Activity{ private TextView message; private Button open; private EditText url; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.network); message= (TextView) findViewById(R.id.message); url= (EditText) findViewById(R.id.url); open= (Button) findViewById(R.id.open); open.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { connect(); } }); } private void connect() { PageTask task = new PageTask(this); task.execute(url.getText().toString()); } class PageTask extends AsyncTask<String, Integer, String> { // 可变长的输入参数,与AsyncTask.exucute()对应 ProgressDialog pdialog; public PageTask(Context context){ pdialog = new ProgressDialog(context, 0); pdialog.setButton("cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int i) { dialog.cancel(); } }); pdialog.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { finish(); } }); pdialog.setCancelable(true); pdialog.setMax(100); pdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pdialog.show(); } @Override protected String doInBackground(String... params) { try{ HttpClient client = new DefaultHttpClient(); // params[0]代表连接的url HttpGet get = new HttpGet(params[0]); HttpResponse response = client.execute(get); HttpEntity entity = response.getEntity(); long length = entity.getContentLength(); InputStream is = entity.getContent(); String s = null; if(is != null) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buf = new byte[128]; int ch = -1; int count = 0; while((ch = is.read(buf)) != -1) { baos.write(buf, 0, ch); count += ch; if(length > 0) { // 如果知道响应的长度,调用publishProgress()更新进度 publishProgress((int) ((count / (float) length) * 100)); } // 让线程休眠100ms Thread.sleep(100); } s = new String(baos.toByteArray()); } // 返回结果 return s; } catch(Exception e) { e.printStackTrace(); } return null; } @Override protected void onCancelled() { super.onCancelled(); } @Override protected void onPostExecute(String result) { // 返回HTML页面的内容 message.setText(result); pdialog.dismiss(); } @Override protected void onPreExecute() { // 任务启动,可以在这里显示一个对话框,这里简单处理 message.setText(R.string.task_started); } @Override protected void onProgressUpdate(Integer... values) { // 更新进度 System.out.println(""+values[0]); message.setText(""+values[0]); pdialog.setProgress(values[0]); } }}
0 0
- 使用AsyncTask从网上获取一个网页,在一个TextView中将其源代码显示出来
- 从网上获取一个网页,在一个TextView中将其源代码显示出来
- 从网上获取一个网页,在一个TextView中将其源代码显示出来
- android开发之获取一个页面的源代码用一个textview显示出来
- php中将一段数据存到一个txt文件中,并获取其内容显示。
- 在java中将一个对象的所有方法打印出来
- 使用ImageLoader获取图片,使用异步在网上请求json,然后解析,在listview中显示出来
- 在一个TextView中字体显示不同颜色
- 在一个网页中显示另一个网页
- 一个在网页中加亮显示源代码的工具--dp.SyntaxHighlighter
- 在网上找了一个SqlMembershipProvider 的例子,今天在这里给大家贴出来
- 在网页中显示一个时钟 (js)
- 如何在网页上显示一个钟表
- 如何在网页上显示一个钟表
- 在网页上显示一个钟表。
- 如何在网页上显示一个钟表。
- python获取网页源代码后在网站上显示
- 一个放在上面就显示出来的层
- 类的设计原则
- RXJAVA 基础使用笔记
- 第五周项目1(1)计算圆的周长
- 欢迎使用CSDN-markdown编辑器
- 路灯 - java
- 使用AsyncTask从网上获取一个网页,在一个TextView中将其源代码显示出来
- 231. Power of Two
- 例题 2.7归并排序
- 检查型异常和非检查型异常
- SAP Backgroud job
- GenericServlet的讲解
- Cocos2d-x相关问题笔记
- CentOS php pgsql 扩展
- c++教程(十四:Dynamic memory)