Android之记账本
Posted 冷的锋刃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android之记账本相关的知识,希望对你有一定的参考价值。
这个ColaBox记事本是我从网上下载下来的拿来学习一下的(APK下载点这里。)
从登记收入与开支的页面跳转到账单页面运用了SQL数据库的录入,整体表的结构为:
db.execSQL("CREATE TABLE bills (" + "_id INTEGER primary key autoincrement,"//ID +" acctitemid integer,"//账目类型 + "fee integer,"//费用 + "userid integer,"//使用者 + "sdate TEXT,"//日期 + "stime TEXT,"//时间 + "desc TEXT" // 备注 + ");");
android中的PID:顾名思义,它指的是Process的id。每个进程都有一个独立的id,可以通过pid来区分不同的进程。
在网上把进程PID常用的API搜了一下记录于此:
android.os.Process.myPid( ) 得到当前进程的pid android.os.Process.killProcess ( int pid ) 杀死相应进程号的进程 List<ActivityManager.RunningProcessInfo> getRunningAppProcesses( ) 获取当前正在运行的进程 android.app.ActivityManager.RunningAppProcessInfo.pid 相应的RunningAppProcessInfo的pid List<ActivityManager.RunningServiceInfo> getRunningServices ( int maxNum ) 得到当前正在运行的ServiceInfo android.app.ActivityManager.RunningServiceInfo.pid 相应的RunningServiceInfo的pid
而UID是应用在在Android中数据共享中,不同的应用有不同的UID,在Android中要实现UID共享数据只需在程序a,b中的menifest配置即可:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.perseus.a" android:versionCode="1" android:versionName="1.0" android:sharedUserId="com.share" >
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.perseus.b" android:versionCode="1" android:versionName="1.0" android:sharedUserId="com.share" >
db.execSQL("CREATE TABLE acctitem (" + "_ID INTEGER PRIMARY KEY,"//ID + "PID integer,"//PID + "NAME TEXT" // 姓名 + ");");
账目表:
db.execSQL("insert into acctitem values (1,null,\'收入\')"); db.execSQL("insert into acctitem values (2,1,\'工资\')"); db.execSQL("insert into acctitem values (9998,1,\'其他\')"); db.execSQL("insert into acctitem values (0,null,\'支出\')"); db.execSQL("insert into acctitem values (3,0,\'生活用品\')"); db.execSQL("insert into acctitem values (4,0,\'水电煤气费\')"); db.execSQL("insert into acctitem values (5,0,\'汽油费\')"); db.execSQL("insert into acctitem values (9999,0,\'其他\')");
主类ColaBox:package com.cola.ui;
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.KeyEvent; import android.widget.ImageView; import android.widget.TextView; public class ColaBox extends Activity { //定义线程 private Handler mHandler = new Handler(); ImageView imageview; TextView textview; int alpha = 255; int b = 0; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imageview = (ImageView) this.findViewById(R.id.ImageView01); textview = (TextView) this.findViewById(R.id.TextView01); Log.v("ColaBox", "ColaBox start ..."); imageview.setAlpha(alpha); //线程 new Thread(new Runnable() { public void run() { initApp(); while (b < 2) { try { if (b == 0) { Thread.sleep(1000); b = 1; } else { Thread.sleep(50); } updateApp(); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); //通过Handler运行线程所传递的信息 mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); imageview.setAlpha(alpha); imageview.invalidate(); } }; }//更新 public void updateApp() { alpha -= 5; if (alpha <= 0) { b = 2; Intent in = new Intent(this, com.cola.ui.Frm_Addbills.class); startActivity(in); this.finish(); } mHandler.sendMessage(mHandler.obtainMessage()); } //初始化 public void initApp(){ BilldbHelper billdb=new BilldbHelper(this); billdb.FirstStart(); billdb.close(); } public boolean onKeyDown(int keyCode, KeyEvent event) { Log.v("cola", "keycode=" + keyCode); switch (keyCode) { case KeyEvent.KEYCODE_BACK: Log.v("ColaBox", "ColaBox end ..."); return true; } return false; } }
运行效果:
以上是关于Android之记账本的主要内容,如果未能解决你的问题,请参考以下文章