您的位置:首页 > 移动开发 > Android开发

Android进阶(二十三)Android开发过程之实例讲解

2016-06-30 21:26 701 查看

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./article/5621346.html 2.http://blog.csdn.net/sunhuaqiang1/article/details/51444018 3./article/11888240.html

美文美图






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: