在线咨询
微信咨询
服务热线
服务热线:15639912513
TOP
当前位置:
首页 > 新闻中心> 安卓课堂>android实现网页源码查看器

android实现网页源码查看器

发布时间:2020-01-13 浏览:3929次

android实现网页源码查看器。思路是,先把组件设计好,然后编写java代码来实现整个流程。主要通过实现网页源码查看器的过程,来理解handle的流程。

第一部分:

adv_1.png

adv_1.png

以上图片是组件的代码。

第二部分:

public class MainActivity extends AppCompatActivity {

    private EditText et_url;

    private Button btn_show;

    private TextView tv_code;

    private Handler handler = new Handler(){

        @Override

        public void handleMessage(@NonNull Message msg) {

           String temp = (String) msg.obj;

           tv_code.setText(temp);

        }

    };

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        et_url = (EditText) findViewById(R.id.et_url);

        btn_show = (Button) findViewById(R.id.btn_show);

        tv_code = (TextView) findViewById(R.id.tv_code);

        btn_show.setOnClickListener(new MyonClicklistener());

    }


    private class MyonClicklistener implements View.OnClickListener {

        @Override

        public void onClick(View v){

            new Thread(){

              public void run(){

                  String path = et_url.getText().toString().trim();

                  URL url = null;

                  try {

                      url = new URL(path);

                      HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                      connection.setRequestMethod("GET");

                      connection.setConnectTimeout(10000);

                      int code = connection.getResponseCode();

                      if(code==200){

                          InputStream inputStream = connection.getInputStream();

                          String result = Utils.getStringFromStream(inputStream);

                          Message msg = new Message();

                          msg.obj=result;

                          handler.sendMessage(msg);

                          //tv_code.setText(result);

                      }

                  } catch (Exception e) {

                      e.printStackTrace();

                  }

              }

            }.start();


        }

    }

}

这个代码是main的代码,还需要一个类,

public class Utils {

    public static String getStringFromStream(InputStream inputStream) throws IOException {

        ByteArrayOutputStream baso = new ByteArrayOutputStream();

        int len = -1;

        byte[] buffer = new byte[1024];

        while((len = inputStream.read(buffer))!=-1){

            baso.write(buffer, 0, len);

        }

        inputStream.close();

        byte[] byteArray = baso.toByteArray();

        return new String(byteArray);

    }

}

adv_1.png

这个图片是运行结果图片。

一共需要这两个类。

总结,在郑州app开发中,尤其需要注意:

1、联网必须在子线程中操作。

2、子线程不能修改UI,修改UI必须在主线程进行。

TAG
3929
该内容对我有帮助