Android 远程连接数据库。。。。。
本来是 6.0.6 换成mysql 5.1.14 驱动ok。。。。
将方法 放在 new Thread() 解决。。。。。
只能在主线程绘制ui。。。。
解决办法。。。
子Thread 获取数据后,将绘制ui代码放到Handler.post中执行
代码---- package com.example.administrator.demo1; import android.os.Handler;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;
import android.widget.Toast; import org.whm.db.DbUtils; import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.jar.Attributes; public class MainActivity extends AppCompatActivity { //钩子线程
Handler handler = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Example of a call to a native method
//TextView tv = (TextView) findViewById(R.id.tabhost);
// tv.setText(stringFromJNI());
TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
tabHost.setup(); // FrameLayout frameLayout = (FrameLayout) findViewById(R.id.tabcontent);
// int childCount = frameLayout.getChildCount();
LinearLayout l1 = (LinearLayout) findViewById(R.id.tab1);
LinearLayout l2 = (LinearLayout) findViewById(R.id.tab2); handler = new Handler(); //在lambda中尽量不要抛出异常。。。。
new Thread(() -> {
List<Map<String, Object>> list = getData(l1);
handler.post(new Thread(() -> {
darwView(list, l1);
}));
}).start(); TabHost.TabSpec tabSpec1 = tabHost.newTabSpec("tabSpec1").setIndicator("视频").setContent(R.id.tab1);
TabHost.TabSpec tabSpec2 = tabHost.newTabSpec("tabSpec2").setIndicator("直播").setContent(R.id.tab2); tabHost.addTab(tabSpec1);
tabHost.addTab(tabSpec2); } /**
* A native method that is implemented by the 'native-lib' native library,
* which is packaged with this application.
*/
public native String stringFromJNI(); //从远程服务器获取数据
private List<Map<String, Object>> getData(LinearLayout l) {
List<Map<String, Object>> list = null;
try {
list = DbUtils.execQuery("select * from video", null);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "发生了错误", Toast.LENGTH_LONG).show();
}
return list; } //绘制ui
private void darwView(List<Map<String, Object>> list, LinearLayout view) {
list.forEach((map) -> {
TextView tv = new TextView(getApplicationContext());
tv.setText((String) map.get("title"));
view.addView(tv);
});
} // Used to load the 'native-lib' library on application startup.
static {
System.loadLibrary("native-lib");
}
}
Android 远程连接数据库。。。。。的更多相关文章
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- Oracle数据库的创建以及远程连接(PL/SQL Developer远程连接数据库)
dbca: 创建数据库 netca: 创建监听程序 netmgr: 配置监听服务(将数据库服务注册到监听器上) netca 与 netmgr 两步可以直接在 ORACLE_HOME/network/a ...
- SQL Server 2005如何远程连接数据库?
SQL Server 2005如何远程连接数据库? 方法/步骤 1 在配置工具中的服务和远程连接的外围应用配置器 --->远程连接-->本地连接和远程连接-->同时使用TCP/I ...
- Android远程桌面助手
很早之前,做过一个<WinCE远程桌面助手>,在没有屏幕或者在调试LCD驱动时,发挥了很大作用,平日开发也是必备.后来还被网友用于处理一些疑难问题,如无法输入开机密码时可通过该工具远程输入 ...
- 在本地没有安装Oracle的情况下,使用plsql远程连接数据库
远程连接数据库的方式不止一种.这里主要写在本地没有安装Oracle的情况下,使用plsql可视化工具远程连接数据库的方式. 一.前提 首先你本地得安装有plsql工具.具体的安装步骤就不多说了. 二. ...
- Android远程桌面助手(B1391)
ARDC(B1391), Download:https://files.cnblogs.com/files/we-hjb/ARDC%28B1391%29_EN.7z Android远程桌面助手(B13 ...
- Android远程桌面助手(B1371)
Android远程桌面助手(B1371),下载:https://files.cnblogs.com/files/we-hjb/ARDC%28B1371%29.7z 1.增加了对超大分辨率4320*21 ...
- Android远程桌面助手(B1332)之文件管理器
Android远程桌面助手除了支持Android界面的显示及控制外,还支持Android文件系统的管理,包括文件的快速上传(push).下拉(pull)和查看(cat). Android远程桌面助手( ...
- Android远程桌面助手(B1309)
修改了窗口缩放的处理,支持Android Car等非常规分辨率的Android设备: 修改了获取Android端软件版本的方法,优化了APK的升级逻辑: 优化了远程输入法功能,支持利用PC端输入法快速 ...
随机推荐
- 如何实现1080P延迟低于500ms的实时超清直播传输技术<转>
转载地址:http://www.yunweipai.com/archives/9037.html 最近由于公司业务关系,需要一个在公网上能实时互动超清视频的架构和技术方案.众所周知,视频直播用 CDN ...
- java.lang.Class.getDeclaredMethod()方法详解
Java.lang.Class.getDeclaredMethod()方法用法 注:方法返回一个Method对象,它反映此Class对象所表示的类或接口的指定已声明方法. 描述 java.lang.C ...
- VC++ 6.0 快捷键
多行注释的快捷键 详细步骤 工具栏上右键-〉Customize-〉“Add-ins and Macro Files”tab页,把SAMPLE前面打上钩-〉“Commands”tab页,Categ ...
- JSON数据格式简介
---------------siwuxie095 JSON 简介 JSON:JavaScript 对象表示法(JavaScript Objec ...
- SWT简介
--------------siwuxie095 SWT 简介: SWT(Standard Widget Toolkit) 也是基于一个对等体实 ...
- sql中的Alias怎么用
一直很奇怪,不知道为什么sql的Alias怎么用,上次看到ThinkPHP中的讲解,为什么数据库在用的时候有时候喜欢改个别名再用, 因为昨天去参加了公司的数据库开发工程师的笔试,今天就复习一下sql, ...
- 15-struct(构造函数,重载)
必须充分掌握struct的使用,包括其构造和重载函数的写法: #include <iostream> using namespace std; struct node { int x, y ...
- 在Linux里安装jdk
一.系统环境说明: [操作系统]:Ubuntu 18.04.1 Desktop [JDK]:jdk1.8.0_181,文件名称:jdk-8u181-linux-x64.tar 二.准备jdk文件 下载 ...
- 8.View类
Basic Concepts 在Modle/View 结构中,View从Model中提取数据,并显示给用户.View显示数据的方式不一定与Model中数据排列方式相同,也可能与底层数据结构完 ...
- Entity Framework Tutorial Basics(16):Linq-to-Entities Projection Queries
Linq-to-Entities Projection Queries: Here, you will learn how to write LINQ-to-Entities queries and ...