Android进阶(二十三)Android开发过程之实例讲解
Android开发过程之实例讲解
前言
回过头来审视之前做过的Android项目,发觉自己重新开发时忽然间不知所措了,间隔了太长时间没有开发导致自己的Android技能知识急剧下降。温故而知新。
废话少说,进入正题~
下面主要以自己之前开发过的Android小项目为例,探讨Android开发基本流程,以及其中所涉及到的原理。
项目名称为“我查查”,主要的实现功能是查询、添加商品评价,分享购物体验。
主要界面如下:
图1 主功能界面
图2 查看商品信息
图3 添加新评论
图4 扫码操作
图5 查看最新分享
图6 添加商品信息
图7 用户注册
图8 当前用户状态
新建一个Android项目时,在AndroidManifest.xml配置文件中可设置应用名称、应用权限以及配置四大组件,各节点配置可参考网络上其它文献。
至此,应用入口确定,为WelcomeActivity,进入WelcomActivity,代码如下:
package org.wokankan;
import java.util.TimerTask;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.view.Window;
public class WelcomeActivity extends Activity {
protected static final int LOGINOVER = 0;
protected static final String TAG = "Welcome";
private Handler handler; //因为要重写构造方法,所以不能用匿名内部类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置登录无标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.welcome);
HandlerThread myThread = new HandlerThread("myHandlerThread");
myThread.start();
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what == LOGINOVER){
// 页面跳转
Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);
startActivity(intent);
WelcomeActivity.this.finish();
}
}
};
tt.run();
}
TimerTask tt = new TimerTask() {
@Override
public void run() {
//Log.i(TAG, Thread.currentThread().getName());
// 设置3s后跳转到MainActivity
handler.sendMessageDelayed(handler.obtainMessage(LOGINOVER), 3000);
}
};
}
在运行时,再次出现了令人烦恼的字符集编码问题,中文字符写入数据库时全部为问号。如下图所示。
问题出在写入数据库时,写入之前中文字符正常显示,写入后变为乱码。为此需要设置数据库的编码方式。
根据前面的问题解决方式,在mysql中直接以sql语句的形式进行测试,测试语句如下:
insert into product(barcode,product_name,guige,changjia,xinghao,imguri,qrbarcode_uri) values("123","测试","12","中国","","","");
执行时,果然出现了问题。错误提示如下:
按照之前解决问题的思路,总结如下:
要想实现中文字符插入数据库中时不出现乱码现象需满足如下条件:
在连接数据库时需指定编码方式,示例如下:
jdbc:mysql://localhost:3308/lmapp?useUnicode=true&characterEncoding=utf8
后面的编码方式指定尤为重要。
附
参考文献
1.http://www.cnblogs.com/pilang/archive/2011/04/20/2022932.html
2.http://blog.csdn.net/sunhuaqiang1/article/details/51444018
3.http://blog.csdn.net/sunhuaqiang1/article/details/51644645
美文美图
Android进阶(二十三)Android开发过程之实例讲解的更多相关文章
- Android进阶(二十七)Android原生扰人烦的布局
Android原生扰人烦的布局 在开发Android应用时,UI布局是一件令人烦恼的事情.下面主要讲解一下Android中的界面布局. 一.线性布局(LinearLayout) 线性布局分为: (1) ...
- Android进阶(二十)AndroidAPP开发问题汇总(四)
· Android进阶(二十)AndroidAPP开发问题汇总(四) android:layout_width和android:width的区别 基中的android:layout_width和and ...
- Android进阶(二十八)上下文菜单ContextMenu使用案例
上下文菜单ContextMenu使用案例 前言 回顾之前的应用程序,发现之前创建的选项菜单无法显示了.按照正常逻辑来说,左图中在"商品信息"一栏中应该存在选项菜单,用户可进行分享等 ...
- 我的Android进阶之旅------>Android疯狂连连看游戏的实现之开发游戏界面(二)
连连看的游戏界面十分简单,大致可以分为两个区域: 游戏主界面区 控制按钮和数据显示区 1.开发界面布局 本程序使用一个RelativeLayout作为整体的界面布局元素,界面布局上面是一个自定义组件, ...
- 我的Android进阶之旅------>Android疯狂连连看游戏的实现之实现游戏逻辑(五)
在上一篇<我的Android进阶之旅------>Android疯狂连连看游戏的实现之加载界面图片和实现游戏Activity(四)>中提到的两个类: GameConf:负责管理游戏的 ...
- 我的Android进阶之旅------>Android中查看应用签名信息
一.查看自己的证书签名信息 如上一篇文章<我的Android进阶之旅------>Android中制作和查看自定义的Debug版本Android签名证书>地址:http://blog ...
- 我的Android进阶之旅------>Android利用温度传感器实现带动画效果的电子温度计
要想实现带动画效果的电子温度计,需要以下几个知识点: 1.温度传感器相关知识. 2.ScaleAnimation动画相关知识,来进行水印刻度的缩放效果. 3.android:layout_weight ...
- 我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(三)Android客户端功能实现
我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(一)PC服务器端(地址:http://blog.csdn.net/ouyang_pen ...
- 我的Android进阶之旅------> Android在TextView中显示图片方法
面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色.大小.并包含图像的文本信息),并简要说明实现方法. 答案:Android SDK支持如下显示富文本信息的方式. 1.使用Tex ...
随机推荐
- python之with的使用
python之with使用 with工作原理 紧跟with后面的语句被求值后,返回对象的__e ...
- 浅析java内存管理机制
内存管理是计算机编程中的一个重要问题,一般来说,内存管理主要包括内存分配和内存回收两个部分.不同的编程语言有不同的内存管理机制,本文在对比C++和Java语言内存管理机制的不同的基础上,浅析java中 ...
- iOS开发-文件管理
iOS学习笔记(十七)--文件操作(NSFileManager) 浅析 RunLoop 解决EXC_BAD_ACCESS错误的一种方法--NSZombieEnabled iOS开发--Swift篇&a ...
- CSS中display:block属性的作用
display:block可以理解为块,举个简单的例子!比如你做一个超链接,<li><a href="#">超链接</a></li> ...
- PHP 实例 AJAX 与 XML
在 PHP 中,AJAX 可用来与 XML 文件进行交互式通信,具体的通信过程,请参考本文内容! AJAX XML 实例 下面的实例将演示网页如何通过 AJAX 从 XML 文件读取信息: 实例 ...
- ZooKeeper之(四)配置与命令
4.1 配置文件 ZooKeeper安装好之后,在安装目录的conf文件夹下可以找到一个名为"zoo_sample.cfg"的文件,是ZooKeeper配置文件的模板. ZooKe ...
- “ML学分计划”说明书
计划的由来 我们是一群对机器学习感兴趣的小伙伴,对于神奇的机器学习经常有"一探究竟"的冲动,却因为孤身一人学习的寂寞.亦或繁忙考试工作之余的小小拖延症,而没有持续这份对知识的渴求和 ...
- How to work with my desktop and laptop
introduction Two years ago, I got a laptop Lenovo Y500, I am still using it now. Recently, I bought ...
- Sublime text 添加lua
tools ->build system->new build system... 输入: { "cmd": ["C:\\lua\\lua53.exe&quo ...
- Dynamics CRM2016 升级老版本报“JavaScript Web 资源包含对 Microsoft Dynamics CRM 4.0 (2007) Web 服务终结点的引用”问题的解决办法
今天在新的服务器上部署了CRM2016 on-premises,并将CRM2015的数据库拷贝过来准备附加后升级,但在升级过程中遇到了如下错误,向导检测到了我的JavaScript Web 资源中包含 ...