(四) Android Webview 深入 (下)

本文主要介绍一下,如何在listview中加入webview,并且实现下拉刷新,效果如图:

废话不多说,直接过程:

1.mainActivity布局文件:

<span style="font-size:14px;"><RelativeLayout 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"
    tools:context=".MainActivity" >

    <com.happy.demo.xlistview.XListView
        android:id="@+id/xlv_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#f5f5f5"
        android:divider="#00000000"
        android:footerDividersEnabled="false"
        android:headerDividersEnabled="false"
        android:listSelector="#00000000" >
    </com.happy.demo.xlistview.XListView>

</RelativeLayout></span>

2.mainActivity主界面java代码:

<span style="font-size:14px;">package com.happy.demo;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;

import com.happy.demo.adapter.MyAdapter;
import com.happy.demo.xlistview.XListView;
import com.happy.demo.xlistview.XListView.IXListViewListener;

public class MainActivity extends Activity implements IXListViewListener {

	private XListView xlv_list;
	private List<String> lists = new ArrayList<String>();
	private MyAdapter adapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		xlv_list = (XListView) this.findViewById(R.id.xlv_list);
		lists.add("http://www.qq.com");
		adapter = new MyAdapter(lists, MainActivity.this);
		xlv_list.setAdapter(adapter);
		xlv_list.setXListViewListener(this, 0);
		xlv_list.setPullLoadEnable(false);
		xlv_list.setRefreshTime();
	}

	@Override
	public void onRefresh(int id) {
		new Handler().postDelayed(new Runnable() {

			@Override
			public void run() {
				xlv_list.setRefreshTime();
				xlv_list.stopRefresh();
			}
		}, 3000);
	}

	@Override
	public void onLoadMore(int id) {
		// TODO Auto-generated method stub

	}

}</span>

3.adapter适配器item布局xml代码:

<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/wb_webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout></span>

4.adapter适配器java代码:

<span style="font-size:14px;">package com.happy.demo.adapter;

import java.util.List;

import com.happy.demo.R;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.BaseAdapter;

/**
 * @author zhonglq
 * @version V1.0
 * @Date 2014-10-25 下午10:53:37
 */
public class MyAdapter extends BaseAdapter {

	private List<String> lists;
	private Context context;

	public MyAdapter(List<String> lists, Context context) {
		this.lists = lists;
		this.context = context;
	}

	@Override
	public int getCount() {
		return lists.size();
	}

	@Override
	public Object getItem(int position) {
		return lists.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		if (convertView == null) {
			convertView = View.inflate(context, R.layout.list_item, null);
		}
		WebView wb_webView = (WebView) convertView
				.findViewById(R.id.wb_webView);
		setWebView(lists.get(position), wb_webView);
		return convertView;
	}

	private void setWebView(String url, WebView webView) {
		webView.loadUrl(url);

	}

}</span>

这样就可以实现在listview中嵌入webView并且实现下拉刷新的效果了,代码并不多,并且比较好懂,就不多作解释了。

时间: 2024-10-02 23:58:32

(四) Android Webview 深入 (下)的相关文章

Android WebView环境下打开相机、文件管理进行上传

Webview下面坑奇多,直接在浏览器下面可以直接调出相机和文件管理,但是在webview下面就是不行,在网上查阅了很多文章,不得不说坑奇多,最多终于拼拼凑凑成功了, 安卓版本为4.4.2,调试通过. 安卓端关键源码: protected ValueCallback<Uri> mUploadMessage; protected int FILECHOOSER_RESULTCODE = 1; private String mCameraFilePath; @SuppressLint("

android WebView详解,常见漏洞详解和安全源码(下)

上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑. 上篇:android WebView详解,常见漏洞详解和安全源码(上) 转载请注明出处:http://blog.csdn.net/self_study/article/details/55046348 对技术感兴趣的同鞋加群 544645972 一起交流. WebView 常见漏洞 WebView 的漏洞也是不少,列举一些常见的漏洞,实时更新,如果有其他的常见漏洞,知会一下我-- WebView

Android WebView学习

Android WebView学习 权限: <uses-permission android:name=“android.permission.INTERNET” /> 在WebView中使用JavaScript WebView myWebView = (WebView) findViewById(R.id.webview);WebSettings webSettings = myWebView.getSettings();webSettings.setJavaScriptEnabled(tr

[Chromium] Chromium Android WebView层的设计

Chromium Android WebView是Chromium专为Android WebView提供一个对Content的封装层.从整体上来看可以理解为一个特殊化的Embedder, 功能可以概括为: 1. 对Content和部分Browser Components封装到Java实现,供AOSP WebView调用实现WebView功能. 2. 实现Android WebView使用的单进程渲染架构. 3. 配置网络模块,并实现特定需要的scheme解析. Content作为一个能力提供者,

android WebView详解,常见漏洞详解和安全源码

这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析. 由于博客内容长度,这次将分为上下两篇,上篇详解 WebView 的使用,下篇讲述 WebView 的漏洞和坑,以及修复源码的解析. 下篇:android WebView详解,常见漏洞详解和安全源码(下) 转载请注明出处:http://blog.csdn.net/self_study/article/details/54928371. 对技术感兴趣的同鞋加群 54

Android WebView执行GPU命令的过程分析

Android WebView使用的Chromium引擎,虽然没有自己的GPU进程或者线程,但是却可以执行GPU命令.原来,Android WebView会给它提供一个In-Process Command Buffer GL接口.通过这个接口,Chromium引擎就可以将GPU命令提交给App的Render Thread执行.本文接下来就详细分析Android WebView执行GPU命令的过程. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 从前面Ch

Android WebView简要介绍和学习计划

我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新.在4.4版本之前,Android WebView基于WebKit实现.不过,在4.4版本之后,Android WebView就换成基于Chromium的实现了.基于Chromium实现,使得WebView可以更快更流畅地显示网页.本文接下来就介绍Android WebView基于Chromium的实现原理,以及制定学习计划. 通过前面几个系列文章的学习,我们知道,Chromium的实现是相当复杂的.这种复杂可以体现在编译出

Android WebView使用详解包括js互调

目前很多android app都内置了可以显示web页面的界面,会发现这个界面一般都是由一个叫做WebView的组件渲染出来的,学习该组件可以为你的app开发提升扩展性. 先说下WebView的一些优点: 可以直接显示和渲染web页面,直接显示网页 webview可以直接用html文件(网络上或本地assets中)作布局 和JavaScript交互调用 一.基本使用 首先layout中即为一个基本的简单控件: <WebView android:id="@+id/webView1"

手把手教你构建 Android WebView 的缓存机制 &amp; 资源预加载方案

前言 由于H5具备 开发周期短.灵活性好 的特点,所以现在 Android App大多嵌入了 Android Webview 组件进行 Hybrid 开发 但我知道你一定在烦恼 Android Webview 的性能问题,特别突出的是:加载速度慢 & 消耗流量 今天,我将针对 Android Webview 的性能问题,提出一些有效解决方案. 目录 1. Android WebView 存在什么性能问题? Android WebView 里 H5 页面加载速度慢 耗费流量 下面会详细介绍. 1.