热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

webView加载数据内容

<?xmlversion"1.0"encoding"utf-8"?><LinearLayoutxmlns:android"

    android:layout_
    android:layout_>


            android:id="@+id/web_view"
        android:layout_
        android:layout_>


   




package com.example.a02_httpurlconnnection_newstop_03;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class WebActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.web_layout);


        WebView webView = (WebView) findViewById(R.id.web_view);


        Intent intent = getIntent();
        String url = intent.getStringExtra("url");


        //加载
        webView.loadUrl(url);


        //设置
        webView.setWebViewClient(new WebViewClient());


        WebSettings settings = webView.getSettings();
        settings.setJavascriptEnabled(true);
        settings.setJavascriptCanOpenWindowsAutomatically(true);
    }
}


package com.example.a02_httpurlconnnection_newstop_03;


import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;


import com.example.a02_httpurlconnnection_newstop_03.adapter.MyAdapter;
import com.example.a02_httpurlconnnection_newstop_03.bean.DataBean;
import com.example.a02_httpurlconnnection_newstop_03.bean.DataResultBean;
import com.google.gson.Gson;


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


public class MainActivity extends AppCompatActivity {


    private ListView listView;


    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            //接收数据...设置适配器
            if (msg.what == 0){
                DataBean dataBean = (DataBean) msg.obj;


                list = dataBean.getResult().getData();


                //设置适配器


                MyAdapter myAdapter = new MyAdapter(list, MainActivity.this);
                listView.setAdapter(myAdapter);
            }


        }
    };
    private List list;


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


        listView = (ListView) findViewById(R.id.list_view);
        //条目的点击事件
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView adapterView, View view, int i, long l) {
                //传值过去...url路径
                if (list != null){
                    Intent intent = new Intent(MainActivity.this,WebActivity.class);


                    intent.putExtra("url",list.get(i).getUrl());
                    startActivity(intent);
                }
            }
        });


    }


    public void getTop(View view){


        //点击获取网络数据之前,判断一下网络是否可用...不可用,设置
        if (isNetConnected()){
            getNetData();


        }else {
            //对话框
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);


            builder.setTitle("警告");
            builder.setMessage("网络不可用,是否设置?");


            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    //Settings.ACTION_WIRELESS_SETTINGS
                    //Settings.ACTION_WIFI_SETTINGS
                    Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
                    startActivity(intent);
                }
            });
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {


                }
            });


            builder.show();


        }


    }


    /**
     * 判断网络是否可用
     *
     * boolean
     */
    private boolean isNetConnected(){
        //1.获取一个连接管理对象
        ConnectivityManager manager = (ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);


        //2.获取网络连接的信息
        NetworkInfo networkInfo = manager.getActiveNetworkInfo();


        if (networkInfo != null){
            //返回值就代表网络是否可用
            return networkInfo.isAvailable();
        }


        return false;
    }


    /**
     * 获取头条的数据
     */
    private void getNetData() {
        new Thread(){
            @Override
            public void run() {
                //头条服务器地址
                String path = "http://v.juhe.cn/toutiao/index";


                try {
                    URL url = new URL(path);


                    //打开连接
                    HttpURLConnection cOnnection= (HttpURLConnection) url.openConnection();
                    //设置
                    connection.setRequestMethod("POST");
                    connection.setConnectTimeout(5000);
                    connection.setReadTimeout(5000);


                    //post方式要提交参数给服务器...以流的方式提交给服务器
                    connection.setDoOutput(true);
                    //设置请求参数的类型
                    connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");


                    String params = "type=top&key=597b4f9dcb50e051fd725a9ec54d6653";
                    //参数以流的形式写给服务器...字节数组的形式写出去
                    connection.getOutputStream().write(params.getBytes());


                    //响应
                    int respOnseCode= connection.getResponseCode();
                    if (respOnseCode== 200){
                        //获取输入字节流
                        InputStream inputStream = connection.getInputStream();


                        String json = streamToString(inputStream,"utf-8");


                        Log.i("json",json);
                        //解析...解析完成之后发送到主线程,设置适配器
                        Gson gson = new Gson();
                        DataBean dataBean = gson.fromJson(json, DataBean.class);


                        //发送出去
                        Message message = Message.obtain();
                        message.what = 0;
                        message.obj = dataBean;
                        handler.sendMessage(message);
                    }




                } catch (Exception e) {
                    e.printStackTrace();
                }




            }
        }.start();
    }


    private String streamToString(InputStream inputStream,String charset) {
        try {
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);


            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String s = null;
            StringBuilder builder = new StringBuilder();
            while ((s = bufferedReader.readLine()) != null){
                builder.append(s);
            }


            bufferedReader.close();
            return builder.toString();


        } catch (Exception e) {
            e.printStackTrace();
        }


        return  null;
    }
}



推荐阅读
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 深入解析 Android 选择器与形状绘制技术
    本文深入探讨了 Android 中选择器(Selector)与形状绘制(Shape Drawing)技术的应用与实现。重点分析了 `Selector` 的 `item` 元素,其中包括 `android:drawable` 属性的使用方法及其在不同状态下的表现。此外,还详细介绍了如何通过 XML 定义复杂的形状和渐变效果,以提升 UI 设计的灵活性和美观性。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • 深入解析 Android Drawable:第六阶段进阶指南 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • Android 图像色彩处理技术详解
    本文详细探讨了 Android 平台上的图像色彩处理技术,重点介绍了如何通过模仿美图秀秀的交互方式,利用 SeekBar 实现对图片颜色的精细调整。文章展示了具体的布局设计和代码实现,帮助开发者更好地理解和应用图像处理技术。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
author-avatar
bell723_893
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有