在《物联网平台搭建的全过程介绍(八)——利用JDBC实现网上注册用户和登录功能》中介绍了利用JDBC实现用户注册和登录的功能,今天继续介绍登录之后要做的事情。
登录是系统的准入窗口,登录之后就需要和数据库进行交互了。这一讲介绍读取file表中pdf文件名称、文件链接和更新日期等内容,并利用listview和SimpleAdapter搭配进行展示。在文件显示界面,点击文件所在行,可以在线阅读文件内容。
目录
一、准备工作
1、在mysql上创建一个“file”的表格
2、在服务器上传一篇pdf文档
3、把文档信息填入“file”表格内
二、设计layout
1、新增activity_main.xml
2、新增lv_documents_layout.xml
3、readwebviewpdf.xml
三、在app下建立一个assets文件夹
1、index.html
2、index.js
三、java程序
1、创建一个MyDocument.class
2、LoginActivity.jave
3、MainActivity.java
4、ReadWebViewPdf.java
四、测试结果
一、准备工作
1、在mysql上创建一个“file”的表格
2、在服务器上传一篇pdf文档
3、把文档信息填入“file”表格内
二、设计layout
在《物联网平台搭建的全过程介绍(八)——利用JDBC实现网上注册用户和登录功能》的基础上,layout有如下变化,把第(八)节中的activity_main.xml文件改名为activity_login.xml还做为登录界面,新增三个layout文件:activity_main.xml、lv_documents_layout.xml和readwebviewpdf.xml。
activity_main.xml是用listview来展示从mysql中读取到的文档情况,lv_documents_layout.xml是listview中的控件布局,readwebviewpdf.xml是显示pdf的界面。
1、新增activity_main.xml
2、新增lv_documents_layout.xml
3、readwebviewpdf.xml
这个文件是用来显示pdf文档的主界面。
三、在app下建立一个assets文件夹
文件夹内放两个文件:index.html和index.js。这两个是webviewpdf所需要的文件。
1、index.html
Document
2、index.js
var url = location.search.substring(1);
PDFJS.cMapUrl = 'https://unpkg.com/pdfjs-dist@1.9.426/cmaps/';
PDFJS.cMapPacked = true;
var pdfDoc = null;
function createPage() {
var div = document.createElement("canvas");
document.body.appendChild(div);
return div;
}
function renderPage(num) {
pdfDoc.getPage(num).then(function (page) {
var viewport = page.getViewport(2.0);
var canvas = createPage();
var ctx = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
page.render({
canvasContext: ctx,
viewport: viewport
});
});
}
PDFJS.getDocument(url).then(function (pdf) {
pdfDoc = pdf;
for (var i = 1; i
三、java程序
1、创建一个MyDocument.class
这个类是装载文件内容的,有序号、文档名、链接地址和更新日期四部分内容。
package com.example.myjdbc;
public class MyDocument {
private String document_number;
private String document_name;
private String document_link;
private String document_date;
public MyDocument(String document_number, String document_name, String document_link, String document_date) {
this.document_number = document_number;
this.document_name = document_name;
this.document_link = document_link;
this.document_date=document_date;
}
public String getdocument_number() {
return document_number;
}
public String getdocument_name() {
return document_name;
}
public String getdocument_link() {
return document_link;
}
public String getdocument_date() {
return document_date;
}
}
2、LoginActivity.jave
这是登录程序,就是第八节中的MainActivity.java改名过来的,详细程序见第八节。
3、MainActivity.java
该部分程序,主要的功能就是从file表内把文件内容读取下来,然后利用SimpleAdapter把文件信息装进listview,使一行listview呈现多种布局形式。
package com.example.myjdbc;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
public class MainActivity extends AppCompatActivity {
ListView lv_dashboard;
private List
4、ReadWebViewPdf.java
package com.example.myjdbc;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import java.util.Objects;
public class ReadWebViewPdf extends AppCompatActivity {
private WebView mWebView;
private String url;
SharedPreferences spDocument;//选定文件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.readwebviewpdf);
mWebView = (WebView) findViewById(R.id.view_web);
spDocument=this.getSharedPreferences("Document",this.MODE_PRIVATE);
url=spDocument.getString("Document_link",null);//取出选中文件链接
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
webSettings.setSavePassword(false);
webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.loadUrl("file:///android_asset/index.html?" + url);
}
}
四、测试结果
(全文结束)
本文章来源于互联网,如有侵权,请联系删除!原文地址:物联网平台搭建的全过程介绍(九)——利用JDBC读取mysql数据展示在listview
相关推荐: (一)HAAS530 阿里云物联网平台ID²接入实践,FREERTOS+SE芯片
阿里云ID²介绍 官方文档: https://help.aliyun.com/document_detail/101295.html 物联网设备身份认证-快速入门 快速入门 值得好好看看,这里描述了移植开发中需要走哪几个步骤 https://iotid.con…