• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android开发学习之路--网络编程之初体验

Android开发学习之路--网络编程之初体验

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了Android开发学习之路--网络编程之初体验等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android开发学习之路--网络编程之初体验


一般手机都是需要上网的,一般我们的浏览器就是个webview。这里简单实现下下功能,先编写Android的layout布局:

<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_margin="10dp" android:padding="10dp" tools:context="com.example.jared.webviewstudy.MainActivity">

    <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content">
        <edittext android:id="@+id/netAddress" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content"><button android:id="@+id/openNetAddress" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="0" android:text="Open" android:textallcaps="false">
    

    <webview android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent">


</webview></button></edittext></linearlayout></linearlayout>

这里主要是一个EditText用来输入网址,然后一个Button用来打开网页,webView用来呈现网页。编写代码如下:
package com.example.jared.webviewstudy;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    private WebView myWebView;
    private EditText networkAddr;
    private Button openNetwork;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        networkAddr = (EditText)findViewById(R.id.netAddress);
        myWebView = (WebView)findViewById(R.id.webView);

        openNetwork = (Button)findViewById(R.id.openNetAddress);
        openNetwork.setOnClickListener(new myOnClickListener());
    }

    class myOnClickListener implements View.OnClickListener {
        @Override
        public void onClick(View view) {
            myWebView.getSettings().setJavaScriptEnabled(true);
            myWebView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }
            });
            String networkAddress = networkAddr.getText().toString();
            myWebView.loadUrl("http://"+networkAddress);
        }
    }
}

还有就是权限问题了:

    <uses-permission android:name="android.permission.INTERNET">
</uses-permission>

这里通过setWebViewClient方法,实例化一个WebViewClient,loadurl实现网页的加载。运行看下效果:

\ \

这里打开了百度和我的博客的地址,界面略难看,勉强看看了。

一般网络编程都是通过http的,下面就来实现下,首先是HttpURLConnection,这个一般是google官方提供的,还有一个HttpClient,本来有的,现在api23也没有了,需要自己加载进来。

先使用HttpURLConnection和HttpClient吧,新建工程,编写layout代码如下:

<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_margin="10dp" tools:context="com.example.jared.httpurlconnectionstudy.MainActivity"><button android:id="@+id/sendRequest" android:text="发送请求" android:layout_width="match_parent" android:layout_height="wrap_content">

    <scrollview android:layout_width="match_parent" android:layout_height="match_parent">
        <textview android:id="@+id/response" android:layout_width="match_parent" android:layout_height="wrap_content">
    </textview></scrollview></button></linearlayout>

这里主要就是一个按钮获取数据,然后http请求的数据通过ScrollView可以滑动浏览更多的信息,然后把获取到的信息显示在TextView里面。

编写MainActivity,里面有实现了HttpURLConnection和HttpClient:

package com.example.jared.httpurlconnectionstudy;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

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 org.apache.http.util.EntityUtils;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

    private static final int SHOW_RESPONSE = 1;

    private Button sendRequestBtn;
    private TextView responseView;

    private Handler mHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case SHOW_RESPONSE:
                    String responseContent = (String)msg.obj;
                    responseView.setText(responseContent);
                    break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();

        setContentView(R.layout.activity_main);

        responseView = (TextView)findViewById(R.id.response);
        sendRequestBtn = (Button)findViewById(R.id.sendRequest);
        sendRequestBtn.setOnClickListener(new myOnClickListener());

    }

    private class myOnClickListener implements View.OnClickListener {
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.sendRequest:
                    String url = "http://www.baidu.com";
                    //sendRequestWithHttpURLConnection(url);
                    sendRequestWithHttpClient(url);
                    break;
                default:
                    break;
            }
        }
    }

    private void sendRequestWithHttpClient(final String url) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpGet httpGet = new HttpGet(url);
                    HttpResponse httpResponse = httpClient.execute(httpGet);
                    if(httpResponse.getStatusLine().getStatusCode() == 200) {
                        HttpEntity entity = httpResponse.getEntity();
                        String response = EntityUtils.toString(entity, "utf-8");

                        Me



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-26ViewPager实现滑动翻页效果,viewpager滑动翻页
  • 2017-05-26我的Android进阶之旅------)Android自定义View实现带数字的进度条(NumberProgressBar)
  • 2017-05-26Android合并两个APP的具体做法(掌握)
  • 2017-05-26Android中使用GridView和ImageViewSwitcher实现电子相册简单功能,gridviewimageview
  • 2017-05-26Mac Android studio提交本地项目到Github 已经配置 SSH KEY
  • 2017-05-26【腾讯Bugly干货分享】深入源码探索 ReactNative 通信机制,buglyreactnative
  • 2017-05-26我的第一篇博客,我试试怎么用,第一篇博客,试试
  • 2017-05-26Android中Activity的四大启动模式实验简述,androidactivity
  • 2017-05-26在Kotlin编写RecyclerView适配器(KAD 16),kotlinrecyclerview
  • 2017-05-26Android下拉刷新上拉加载更多的扩展ListView

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • GitLab误删 300G数据的一点启示
    • andriod Java中度转度分秒,andriodjava分秒
    • Yarn上运行spark-1.6.0
    • Android开发笔记(8)——调用子Activity,androidactivity
    • Android解析json数据,android解析json
    • 安卓客户端a标签长按弹框提示解决办法,安卓标签
    • Android源码装饰模式---ContextWrapper
    • android 自定义图片合集(自定义控件)
    • andriod 动态显示当前时间,andriod当前时间
    • Android手机输入法按键监听-dispatchKeyEvent

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有