生活编程(四)——学校图书馆简化

    每次在信号不好的图书馆打开图书检索的主页就是漫长的等待。

其实,所以便萌生了一个想法。我只要简单一个form就可以了。然后嵌入到移动设备就可以了。图书馆后台的查询处理是这样的

http://library.com/searchresult.aspx?anywords=%b7%bd%b7%a8&dt=ALL&cl=ALL&dp=20&sf=M_PUB_YEAR&ob=DESC&sm=table&dept=ALL

anywords就是关键,之前以为用js直接跳转,但是中文的url转码变成了很复杂的事情,其实用form的get自然就解决问题了。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
</head>
        <body>
                <form action="http://library.com/searchresult.aspx?dt=ALL&cl=ALL&dp=20&sf=M_PUB_YEAR&ob=DESC&sm=table&dept=ALL" method="get">
                 <input name="anywords">
                 <button>搜索</button>
                </form>
        </body>
</html>

不过测试之后发现中文是gb2312转的url编码,所以编码要特别说明,不然就是乱码。

接下来就是嵌入到应用中打开方便点。把上面的html命名为test.html,放进android项目的assets(资产)目录。接下来WebView登场。基础知识就不讲了。

layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/clannad"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/webview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

Library.java

package com.myown.library;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;
import android.support.v4.app.NavUtils;

public class Library extends Activity {

    private WebView webview;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_library);
        webview = (WebView) findViewById(R.id.webview);
        // 设置WebView属性,能够执行Javascript脚本
        webview.getSettings().setJavaScriptEnabled(true);
        // 加载需要显示的网页(如果是url直接填写url,加载本地就如下)
        webview.loadUrl("file:///android_asset/test.html");
        // 设置Web视图
        webview.setWebViewClient(new MyWebViewClient());
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            // goBack(),返回上一页
            webview.goBack();
            return true;
        }
        return false;
    }

    // Web视图
    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
}

最后,不要忘记了在应用程序配置文件AndroidManifest.xml中添加访问网络的权限。

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

大功告成。

查询到的页面比较乱,可以添加个适合手机浏览的css。少了打开搜索的页面,就方便很多了。

生活编程(四)——学校图书馆简化,布布扣,bubuko.com

时间: 2024-10-23 14:52:16

生活编程(四)——学校图书馆简化的相关文章

聊一聊学校图书馆的寄存柜

相信有很多同学会遇到这种情况:带着电脑等贵重的物品在图书馆的时候,中途想去洗手间却怕丢了东西;到了饭点想去食堂还要犹豫一下要不要背书包,有些同学就会希望图书馆也可以安置寄存柜. (一)目前我国高校图书馆存包还有部分使用的是钥匙寄存柜? 钥匙寄存方式至少存在以下四种隐患: (1)铁皮柜成本低.钣金工艺水平.外观喷涂效果一般,整体形象与干净明亮的学校图书馆形象严重不符. (2)学生存放财物安全得不到保障.市面普通挂锁安全性较低,钥匙重开率极高,一般的盗窃手段都很容易撬开. (3)钥匙寄存柜使用效率较

GCC编程四个过程:预处理-编译-汇编-链接

在Linux下进行C语言编程,必然要采用GNU GCC来编译C源代码生成可执行程序. 一.GCC快速入门Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件]其中,目标文件可缺省,Gcc默认生成可执行的文件名为:编译文件.out我们来看一下经典入门程序"Hello World!"# vi hello.c #include <stdlib.h>#include <stdio.h>void main(void){printf("he

SHELL编程四剑客练习--sed

SHELL编程四剑客: sed    awk     grep      find sed  可以将数据行进行替换.删除.新增.选取等特定工作 1.sed 如果不加任何参数,是不会去修改文件中的内容的.加 -i  参数会修改,如下图: 2.在文件行首加空格或其他字符,如下图: 行首   ^ 3.在行尾添加字符,如下图: 行尾   $ 4.在某行之后添加内容,如下图: 如果要在之前添加内容,把  a  改为  i   就OK了. 5.只显示其中某一行,如下图: 匹配关键字,"p"&quo

网络编程四:互联网中TCP Socket服务器的实现过程需要考虑哪些安全问题

这篇曾经是答在这里的 互联网中TCP Socket服务器的实现过程需要考虑哪些安全问题- auxten 的回答 最近总是有人问我相关的问题,在专栏补发一下,希望能帮到更多人 首先,这是个很大的命题,之前在360负责过几个对外的服务的研发,也算是有点小经验,我试着答一下 在Internet环境下安全问题我主要分为如下几类 1. 信息传输过程中被黑客窃取 2. 服务器自身的安全 3. 服务端数据的安全 首先,如果能用https,就尽量用https,能用nginx等常见服务器,就用常见服务器,主要能避

Win32 Windows编程 四

一 窗口注册和窗口创建的过程 1  Win32窗口程序创建步骤 1.1 WinMain入口函数的定义 1.2 WindowsProc 函数的定义 1.3注册窗口 RegisterClass/RegisterClassEx 1.4创建窗口 CreateWindow /CreateWindowEx 1.5 显示刷新窗口 ShowWindow/UpdateWindow 1.6 消息处理 GetMessage /DisptchMessage 1.7 窗口退出 WM_DESTROY:PostQuitMes

Java高并发网络编程(四)Netty

在网络应用开发的过程中,直接使用JDK提供的NIO的API,比较繁琐,而且想要进行性能提升,还需要结合多线程技术. 由于网络编程本身的复杂性,以及JDK API开发的使用难度较高,所以在开源社区中,涌现出来了很多对JDK NIO进行封装.增强的网络编程框架,比如Netty.Mina等. 一.Netty简介 https://netty.io/ 官网 Netty是一个高性能.高可扩展性的异步事件驱动的网络应用程序框架,它极大简化了TCP和UDP客户端和服务器开发等网络编程. Netty重要的四个内容

MapReduce编程(四) 求均值

一.问题描述 三个文件中分别存储了学生的语文.数学和英语成绩,输出每个学生的平均分. 数据格式如下: Chinese.txt 张三 78 李四 89 王五 96 赵六 67 Math.txt 张三 88 李四 99 王五 66 赵六 77 English.txt 张三 80 李四 82 王五 84 赵六 86 二.MapReduce编程 package com.javacore.hadoop; import org.apache.hadoop.conf.Configuration; import

Java 并发编程(四):如何保证对象的线程安全性

本篇来谈谈 Java 并发编程:如何保证对象的线程安全性. 01.前言 先让我吐一句肺腑之言吧,不说出来会憋出内伤的.<Java 并发编程实战>这本书太特么枯燥了,尽管它被奉为并发编程当中的经典之作,但我还是忍不住.因为第四章"对象的组合"我整整啃了两周的时间,才啃出来点肉丝. 读者朋友们见谅啊.要怪只能怪我自己的学习能力有限,真读不了这种生硬无趣的技术书.但是为了学习,为了进步,为了将来(口号喊得有点大了),只能硬着头皮上. 请随我来,我尽量写得有趣点. 02.线程安全类

Unix 网络编程(四)- 典型TCP客服服务器程序开发实例及基本套接字API介绍

写在开头: 在上一节中我们学习了一些基础的用来支持网络编程的API,包括"套接字的地址结构"."字节排序函数"等.这些API几乎是所有的网络编程中都会使用的一些,对于我们正确的编写网络程序有很大的作用.在本节中我们会介绍编写一个基于TCP的套接字程序需要的一些API,同时会介绍一个完整的TCP客户服务器程序,虽然这个程序功能相对简单,但确包含了一个客户服务器程序所有的步骤,一些复杂的程序也都是在此基础上进行扩充.在后面随着学习的深入,我们会给这个程序添加功能. 下面