zoukankan      html  css  js  c++  java
  • 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;
        }
    }

    运行效果:

    不努力,还要青春干什么?
  • 相关阅读:
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    695. Max Area of Island
    2015 Benelux Algorithm Programming Contest E-Excellent Engineers
    URAL
    Codeforces Round #309 (Div. 2) -D. Kyoya and Permutation
    Codeforces Round #144 (Div. 2) D table
    Codeforces Round #429 (Div. 2)
    Codeforces 610D Vika and Segments
    Codeforces 757D
  • 原文地址:https://www.cnblogs.com/caidupingblogs/p/5538965.html
Copyright © 2011-2022 走看看