Andoid+sqlite开发的生命密码原型

来源:互联网 发布:java nested loops 编辑:程序博客网 时间:2024/05/04 05:12

<!--   
      Project name:Mima
      Created by Practicer2015  on 2014-09.
      Copyright 2014 Practicer2015. All rights reserved.
     
  产品核心功能:
                1,选择出生日期,计算生命密码                             
-->

MainActivity 代码

package zn.com.mama;


import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;

import java.util.List;

import android.content.Intent;

import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.Toast;
import android.view.View.OnClickListener;
import android.app.Activity;

 

public class MainActivity extends Activity {

 
    private DataBaseUtil util = null;
      private DatePicker dp;//日期控件
      private Calendar c;//JAVA中的日历类
      String tag = "M" ;
   
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        setContentView(R.layout.activity_main);
     
        dp = (DatePicker)findViewById(R.id.datePicker1);
       
        //dp.updateDate(2012, 8, 9); 
       
        c = Calendar.getInstance();
       
        dp.init(c.get(Calendar.YEAR),c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), new OnDateChangedListener() {
            /*设置日期发生更改时的事件监听*/
            public void onDateChanged(DatePicker view, int year,int monthOfYear,
                       int dayOfMonth) {
                 c.set(year, monthOfYear, dayOfMonth);
            }
      });
       
       
        Button buttonSet = (Button)findViewById(R.id.button1);
       
         OnClicLisers  cl=new OnClicLisers(); 
        
         buttonSet.setOnClickListener(cl); 
        
        
         Button buttonlist = (Button)findViewById(R.id.button2);
        
         OnClicLisersview  clview =new OnClicLisersview(); 
        
         buttonlist.setOnClickListener(clview);
    }
   
   
   
    class OnClicLisers implements OnClickListener{ 
        @Override 
        public void onClick(View v) { 
            // TODO Auto-generated method stub 
            List<String> data = new ArrayList<String>();
            copyDataBaseToPhone();
            Log.v(tag, "copyDataBaseToPhone"); 
            int y=dp.getYear(); 
            Log.v(tag, Integer.toString(y));       
            int m=dp.getMonth()+1; 
            Log.v(tag, Integer.toString(m)); 
            int d=dp.getDayOfMonth(); 
            Log.v(tag, Integer.toString(d)); 
       

    String sss = Integer.toString(y)+Integer.toString(m)+Integer.toString(d);
            Log.v(tag,sss);
           
            data = compute(sss);
                     
            if (null != data)
            {    
          
            Toast.makeText(getApplicationContext(), sss, Toast.LENGTH_SHORT).show();
            Intent myIntent = new Intent();
          
             myIntent.putStringArrayListExtra("val",(ArrayList<String>)data); 
            
             myIntent.setClass(MainActivity.this,ShowActivity.class);
            
             startActivity(myIntent);
             Log.v(tag, "staredtActivity");
             data = null;
            
            }
            else
            {
                Log.v(tag, "data is null");
               
            }
        }
    }

   
    class OnClicLisersview implements OnClickListener{ 
        @Override 
        public void onClick(View v) { 
           
            List<String> data = new ArrayList<String>();
            copyDataBaseToPhone();
            Log.v(tag, "copyDataBaseToPhone"); 
            int y=dp.getYear(); 
            Log.v(tag, Integer.toString(y));       
            int m=dp.getMonth()+1; 
            Log.v(tag, Integer.toString(m)); 
            int d=dp.getDayOfMonth(); 
            Log.v(tag, Integer.toString(d)); 
             String sss = Integer.toString(y)+Integer.toString(m)+Integer.toString(d);
            Log.v(tag,sss);
           
            data = compute(sss);
                     
            if (null != data)
            {    
          
            Toast.makeText(getApplicationContext(), sss, Toast.LENGTH_SHORT).show();
    
            Intent myIntent = new Intent();
          
            myIntent.putStringArrayListExtra("val",(ArrayList<String>)data);
                                
            myIntent.setClass(MainActivity.this, MyListView.class);
           
            startActivity(myIntent);
           
            Log.v(tag, "staredtActivity");
             data = null;
            }
            else
            {
                Log.v(tag, "data is null");
               
            }
           
       
       }
   }
    /*@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }*/

   /* @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }*/
   
   
    /*@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
       
        if(keyCode == KeyEvent.KEYCODE_BACK&&event.getRepeatCount() == 0 ) { //监控/拦截/屏蔽返回键
           
            Toast.makeText(getApplicationContext(), "再按一次返回键,可以返回", Toast.LENGTH_SHORT).show();
                  
               return true;
           } else if(keyCode == KeyEvent.KEYCODE_MENU) {
               //监控/拦截菜单键
         
              
           } else if(keyCode == KeyEvent.KEYCODE_HOME) {
               //由于Home键为系统键,此处不能捕获,需要重写onAttachedToWindow()
         
          
           }
        return super.onKeyDown(keyCode, event);
       
    }*/

   
    /* (non-Javadoc)
     * @see android.app.Activity#onAttachedToWindow()
     */
    /*@Override
    public void onAttachedToWindow() {
        // TODO Auto-generated method stub
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow();
    }*/

    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
       
    }
   
    private void copyDataBaseToPhone() { 
      
       
        DataBaseUtil util = new DataBaseUtil(this);
        if (null != util)
        {
            boolean dbExist = util.checkDataBase(); 
             
            if (dbExist) { 
                Log.v(tag, "The database is exist."); 
            } else {// 不存在就把raw里的数据库写入手机 
                try { 
                    util.copyDataBase(); 
                } catch (IOException e) { 
                    throw new Error("Error copying database"); 
                } 
            } 
           
           
        }
     
       
    } 

     
/*计算生命数字*/ 
    public  List<String> compute(String str) {
       
        int int_life_number = 0;

        int int_gift_number1 = 0;

        int int_gift_number2 = 0;

        int int_perfect_number = 0;
       
        List<String> data = new ArrayList<String>();
       
        int int_number = 0;
        String fst = "";
        String str1 = "";
        
         System.out.print(str);
        for(int num=0 ;num<str.length();num++)
        {
          
            if (num <= str.length()-1)
            {
         
            fst = str.substring(num, num+1);
            int_number = int_number + Integer.parseInt(fst);
            }

        }

         System.out.println(int_number);

         str1 = Integer.toString(int_number);
           
         int_gift_number1 = Integer.parseInt(str1.substring(0, 1));

         data.add("gift_number1" + ":" +int_gift_number1);
        
         Log.v(tag, "gift_number1" + ":" +Integer.toString(int_gift_number1));

         int_gift_number2 = Integer.parseInt(str1.substring(1, 2));

         data.add("gift_number1" + ":" +int_gift_number2);

         Log.v(tag, "gift_number2" + ":" +Integer.toString(int_gift_number2));

         int_life_number = int_gift_number1 + int_gift_number2;


         data.add("life_number" + ":" +int_life_number);
      
         Log.v(tag, "life_number" + ":" +Integer.toString(int_life_number));
       
         int_perfect_number = Integer.parseInt(str1+Integer.toString(int_life_number));
        
         data.add("perfect_number" + ":" +int_perfect_number);      
        
         Log.v(tag, "perfect_number" + ":" +Integer.toString(int_perfect_number));
       
        return data;
 
    }

    
}

sqlite数据库代码

package zn.com.mama;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.EditText;

public class ShowActivity extends Activity {
   
       public static  int int_life_number = 0;

    public static  int int_gift_number1 = 0;

    public static  int int_gift_number2 = 0;

    public static int perfect_number = 0;
   
    protected int iBackcount = 0;
    private List<String> infoList = new ArrayList<String>(); 
    EditText eMima;
    EditText eMima1;
    EditText eMima2;
    EditText eMima3;
   
    protected SQLiteDatabase db ;
    private String tag1 = "S" ;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        Cursor c= null;
        String sPara = "";
        String sResult = "";
        super.onCreate(savedInstanceState);
        setContentView(R.layout.result);
        Log.v(tag1, "show");
        eMima = (EditText)findViewById(R.id.editText1);
        eMima1 = (EditText)findViewById(R.id.editText2);
        eMima2 = (EditText)findViewById(R.id.editText3);
        eMima3 = (EditText)findViewById(R.id.editText4);
       
        infoList = (List<String>)getIntent().getStringArrayListExtra("val"); 
        Log.v(tag1, "getlist");
        if (null != infoList)
        {   
            int j = 1;
            db = OpenandCreateDb();
             if (null == db )
            {
               
                Log.v(tag1, "db is null");
            }
            else
            {
               
                if (sResult.length()>0) { sResult = "";}
               
                for (String str : infoList) {
                   
                      
                    int i = str.indexOf(":");
                 
                    sPara = str.substring(i+1,str.length());
                    
                       switch (j){

                         case 1:
                                Log.v(tag1, "int_gift_number1:"+sPara);
                               
                                int_gift_number1 = Integer.parseInt(sPara);
                                 
                                c = db.rawQuery("SELECT value FROM gift_code WHERE int_gift_number = ?",new String[]{sPara});
                             
                                if(c != null && c.getCount()>0)
                                  {
                                    c.moveToNext();
                                     String uname = c.getString( c.getColumnIndex("value") );
                                    uname = this.getResources().getString(R.string.sgiftcode1)+sPara+uname;
                                    eMima.setText(uname);
                                 }
                                  c.close();
                                  break;
                         case 2:
                                Log.v(tag1, "int_gift_number2:"+sPara);
                                int_gift_number2 = Integer.parseInt(sPara); 
                                c = db.rawQuery("SELECT value FROM gift_code WHERE int_gift_number = ?",new String[]{sPara});
                                if(c != null && c.getCount()>0)
                                  {
                                    c.moveToNext();
                                    //进行操作
                                    String uname = c.getString( c.getColumnIndex("value") );
                                    uname = this.getResources().getString(R.string.sgiftcode2)+sPara+uname;
                                    eMima1.setText(uname);

                                  }
                                  c.close();
                                  break;
                         case 3:
                                Log.v(tag1, "lifecode:"+sPara);
                                 
                                int_life_number = Integer.parseInt(sPara);
                                c = db.rawQuery("SELECT value FROM life_code WHERE int_life_number = ?",new String[]{sPara});
                                if(c != null && c.getCount()>0)
                                  {
                                    c.moveToNext();
                                     //进行操作
                                    String uname = c.getString( c.getColumnIndex("value") );
                                    uname = this.getResources().getString(R.string.slifecode)+sPara+uname;
                                    eMima2.setText(uname);

                                  }
                                  c.close();
                                  break;
                            
                         case 4:
                                Log.v(tag1, "perferct number"+sPara);
                               
                                perfect_number = Integer.parseInt(sPara);  
                              
                                c = db.rawQuery("SELECT value FROM perfect_code WHERE int_perfect_number = ?",new String[]{sPara});
                              
                                if(c != null && c.getCount()>0)
                                  {
                                    c.moveToNext();
                               
                                    //进行操作
                                    String uname = c.getString( c.getColumnIndex("value") );
                                    uname = this.getResources().getString(R.string.sperfectcode)+sPara+uname;
                                                                       eMima3.setText(uname);


                                  }
                               
                                  c.close();
                                  break;
                             default:
                                 break;
                         } 
                        
                            j++;
                    }//for      
                }

              db.close();      
        
          }//infolist
          else
          {
               
                eMima.setText("");

                Log.v(tag1, "Infolist is null");
               
          }
    }
      /* (non-Javadoc)
     * @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
     */
    /*@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        getMenuInflater().inflate(R.menu.share, menu);
        return super.onCreateOptionsMenu(menu);
    }/*

 

    /* (non-Javadoc)
     * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
     */
    /*@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        int id = item.getItemId();
        if (id == R.id.action_share) {
           
            Toast.makeText(getApplicationContext(), "分享功能在下一版本提供", Toast.LENGTH_SHORT).show();
           
            return true;
        }
        return super.onOptionsItemSelected(item);
    }*/

 

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode == KeyEvent.KEYCODE_BACK&&event.getRepeatCount() == 0 ) { //监控/拦截/屏蔽返回键
           
        // Toast.makeText(getApplicationContext(), "再按一次返回键,可以返回", Toast.LENGTH_SHORT).show();
                  
        }else
        {
         }
       
        /*else if(keyCode == KeyEvent.KEYCODE_MENU) {
            //监控/拦截菜单键
         } else if(keyCode == KeyEvent.KEYCODE_HOME) {
            //由于Home键为系统键,此处不能捕获,需要重写onAttachedToWindow()
              }*/
       
        return super.onKeyDown(keyCode, event);      
        
    }

 

    /* (non-Javadoc)
     * @see android.app.Activity#onAttachedToWindow()
     */
    /*@Override
    public void onAttachedToWindow() {
        // TODO Auto-generated method stub
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow();
    }*/

 

    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
            super.onStop();
 
    }

    private  SQLiteDatabase OpenandCreateDb(){
         Log.v(tag1, "createdb");
         Context context=this;
         db = SQLiteDatabase.openOrCreateDatabase(context.getFilesDir().getAbsolutePath().replace("files","databases") + File.separator+"test.db", null);
         Log.v(tag1,context.getFilesDir().getAbsolutePath()+"test.db");
         Log.v(tag1, "createddb");
         return db;
    }
}

0 0