android中的sqlite实现程序

 更新时间:2016年9月20日 20:00  点击:2031
android中的sqlite实现程序 有需要学习的朋友可参考参考。

新建项目Events,项目的主程序文件有:Events.java、EventsData.java、Constants.java;布局文件有item.xml。

Events.java文件是项目的入口文件,大致如下:

 代码如下 复制代码

package org.hxsd.events;
 
import static android.provider.BaseColumns._ID;
import static org.hxsd.events.Constants.TABLE_NAME;
import static org.hxsd.events.Constants.TIME;
import static org.hxsd.events.Constants.TITLE;
import android.app.ListActivity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.SimpleCursorAdapter;
 
public class Events extends ListActivity {
 private EventsData events;
 //查询的字段
 private static String[] FROM = {_ID, TIME, TITLE};
 //排序
 private static String ORDER_BY = TIME + " DESC";
 //显示
 private static int[] TO = {R.id.rowid, R.id.time, R.id.title};
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        events = new EventsData(this);
        try{
         //添加记录
         addEvent("Hello, Android!");
         //获得记录信息
         Cursor cursor = getEvents();
         //显示记录信息
         showEvents(cursor);
        }finally{
         //关闭数据库
         events.close();
        }
    }
 
    /**
     * 添加数据
     * @param string
     */
    private void addEvent(String string){
     SQLiteDatabase db = events.getWritableDatabase();
     ContentValues values = new ContentValues();
     values.put(TIME, System.currentTimeMillis());
     values.put(TITLE, string);
     db.insertOrThrow(TABLE_NAME, null, values);
    }
 
    /**
     * 获得记录
     * @return
     */
    private Cursor getEvents(){
     SQLiteDatabase db = events.getReadableDatabase();
     Cursor cursor = db.query(TABLE_NAME, FROM, null, null, null, null, ORDER_BY);
     startManagingCursor(cursor);
     return cursor;
    }
 
    /**
     * 显示记录
     * @param cursor
     */
    private void showEvents(Cursor cursor){
     /*StringBuilder builder = new StringBuilder("Saved events:n");
     while(cursor.moveToNext()){
      long id = cursor.getLong(0);
      long time = cursor.getLong(1);
      String title = cursor.getString(2);
      builder.append(id).append(": ");
      builder.append(time).append(": ");
      builder.append(title).append("n");
     }
     TextView textView = (TextView) findViewById(R.id.TextView01);
     textView.setText(builder);*/
 
     SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.item, cursor, FROM, TO);
     setListAdapter(adapter);
    }
}
EventsData.java文件大致如下:

package org.hxsd.events;
 
import static android.provider.BaseColumns._ID;
import static org.hxsd.events.Constants.TABLE_NAME;
import static org.hxsd.events.Constants.TIME;
import static org.hxsd.events.Constants.TITLE;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
public class EventsData extends SQLiteOpenHelper{
 //数据库名称
 private static final String DATABASE_NAME = "events.db";
 //数据库版本
 private static final int DATABASE_VERSION = 2;
 
 //构造函数
 public EventsData(Context ctx){
  super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
 }
 
 @Override
 public void onCreate(SQLiteDatabase db) {
  // 创建数据表events
  db.execSQL("CREATE TABLE " + TABLE_NAME + "(" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + TIME + " INTEGER," + TITLE + " TEXT NOT NULL)");
 }
 
 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  //如果版本有改动,删除表events然后新建
  db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
  onCreate(db);
 }
 
}

Constants.java文件大致如下:

 

 代码如下 复制代码

package org.hxsd.events;
 
import android.provider.BaseColumns;
 
public interface Constants extends BaseColumns{
 //表名称
   public static final String TABLE_NAME = "events";
   //字段名称
   public static final String TIME = "time";
   public static final String TITLE = "title";
}
item.xml文件为布局文件,位于res文件夹下的layout下面,大致如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dip"
    android:orientation="horizontal"
    >
<TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/rowid"
    android:paddingRight="40dip"/>
<TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/time"
    android:layout_toRightOf="@id/rowid"
    android:paddingRight="40dip"/>
<TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    android:layout_toRightOf="@id/time"
    android:paddingRight="40dip"/>
</RelativeLayout>

安卓手机怎么修改改桌面图标的行数和列数要修改之前我们需要有ROOT权限才可以哦,具体操作如下。


横屏:找到此文件

 代码如下 复制代码

froyopackagesappsLauncher2reslayout-landworkspace_screen.xml

竖屏

 代码如下 复制代码

froyopackagesappsLauncher2reslayout-portworkspace_screen.xml

修改里面格子的数量

 代码如下 复制代码

launcher:shortAxisCells=”4″

launcher:longAxisCells=”4″

还可以调整一下格子们与左右和上下的边距

 代码如下 复制代码

launcher:longAxisStartPadding=”65dip”

launcher:longAxisEndPadding=”65dip”

launcher:shortAxisStartPadding=”0dip”
launcher:shortAxisEndPadding=”0dip”

框架下载地址:http://code.google.com/p/loon-simple/downloads/list

下面就讲解下项目中怎么引入游戏框架LGame:

•新建android项目“LGameTest1”,在项目根目录下新建文件夹libs,将下载的LGame框架的jar包放到该文件夹下,然后在Eclipse中右击项目,选择“Build Path->Configure Build Path…->Add External JARs…”选择刚才放到libs文件夹下的jar包,这样框架就被引入到项目中。
•建立简单应用,主程序文件:Main.java、TestScreen.java,代码讲解放在文件里面。
Main.java文件如下:

 代码如下 复制代码
package org.loon.game.lgametest1;
 
import org.loon.framework.android.game.LGameAndroid2DActivity;
 
public class Main extends LGameAndroid2DActivity {
 
 @Override
 public void onGamePaused() {
  // TODO Auto-generated method stub
 
 }
 
 @Override
 public void onGameResumed() {
  // TODO Auto-generated method stub
 
 }
 
 @Override
 public void onMain() {
  //设置游戏窗体大小,默认为320 * 480(纵)、480 * 320(横)
  maxScreen(480, 800);
 
  /**
   * initialization是LGAme的游戏窗体级Admob广告初始用函数,当Initialization为true时,游戏将以横屏显示,
   * 否则以纵屏显示,它的出现位置应该保存在maxScreen设定之后,其它设定出现之前。此外,在Initialization中
   * 也可以顺序设置Admob广告是否显示,广告的出现位置,广告的标识ID,广告的关键字,以及广告的刷新频率
   * android:screenOrientation="portrait"
   */
  this.initialization(false);
 
  /**
   * 设定游戏画面的刷新速度(该设定只对默认的标准的Screen类有效)
   */
  this.setFPS(40);
 
  //设置场景
  this.setScreen(new TestScreen());
 
  /**
   * 设定游戏初始logo是否被显示
   */
  this.setShowLogo(false);
 
  /**
   * 设置是否显示游戏FPS(仅对标准的Screen有效)
   */
  this.setShowFPS(true);
 
  System.out.println("nieyanlong");
 
  /**
   * 显示Screen窗体
   */
  this.showScreen();
 }
 
}

TestScreen.java文件如下:

 代码如下 复制代码

 
package org.loon.game.lgametest1;
 
import org.loon.framework.android.game.core.graphics.Screen;
import org.loon.framework.android.game.core.graphics.opengl.GLEx;
import org.loon.framework.android.game.core.graphics.opengl.LTexture;
import org.loon.framework.android.game.core.input.LTouch;
import org.loon.framework.android.game.core.timer.LTimerContext;
 
import android.util.Log;
 
public class TestScreen extends Screen {
 
 private LTexture[] images;
 
 @Override
 public void onLoad() {
                //记录日志
  Log.d("LGAMETEST1", "here it is onLoad");
 
  LTexture.AUTO_LINEAR();
  images = new LTexture[1];
 
                //assets放置资源文件
  images[0] = new LTexture("assets/background.png");
 
  //设置当前Screen的背景图片
  setBackground(getImage(0));
 
  //背景音乐,"main.mp3"文件放置在assets文件夹下面
  playAssetsMusic("main.mp3", true);
 }
 
 /**
  * 获得图片
  * @param i
  * @return LTexture
  */
 public LTexture getImage(int i) {
  return images[i];
 }
 
 @Override
 public void alter(LTimerContext arg0) {
  // TODO Auto-generated method stub
 
 }
 
 @Override
 public void draw(GLEx arg0) {
  // TODO Auto-generated method stub
 
 }
 
 @Override
 public void touchDown(LTouch arg0) {
  // TODO Auto-generated method stub
 
 }
 
 @Override
 public void touchMove(LTouch arg0) {
  // TODO Auto-generated method stub
 
 }
 
 @Override
 public void touchUp(LTouch arg0) {
  // TODO Auto-generated method stub
 
 }
}

下面我们来介绍Android通过xml文件来设置背景透明度实现程序,有需要的朋友可参考。

•通过XML文件设置

 代码如下 复制代码


半透明 <RelativeLayout android:background=”#c0000000″…>
完全不透明<RelativeLayout android:background=”#ff000000″ … />
完全透明<RelativeLayout android:background=”#00000000″ … />

颜色和不透明度(alpha) 值以十六进制表示法表示。任何一种颜色的值范围都是0到255(00 到 ff)。00 表示完全透明,ff 表示完全不透明。表达式顺序是“aabbggrr”,其中aa=alpha表示透明度,bb=blue(00 到 ff);gg=green(00 到 ff);rr=red(00 到 ff)。


•通过程序代码设置

 代码如下 复制代码
RelativeLayout bottomLayout = (RelativeLayout) findViewById(R.id.view_bottomview);    //通过ID获得View
bottomLayout.getBackground().setAlpha(128);    //0~255透明度值 ,0为完全透明,255为不透明
ImageView.ScaleType 及android:scaleType值的意义和区别 ,下面我来介绍介绍,有需要的朋友可参考一下。 CENTER /center:按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示; CENTER_CROP / centerCrop:按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽); CENTER_INSIDE / centerInside:将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽; FIT_CENTER / fitCenter:把图片按比例扩大/缩小到View的宽度,居中显示; FIT_END / fitEnd:把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置; FIT_START / fitStart:把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置; FIT_XY / fitXY:把图片不按比例扩大/缩小到View的大小显示; MATRIX / matrix:用矩阵来绘制,动态缩小放大图片来显示
[!--infotagslink--]

相关文章

  • php语言实现redis的客户端

    php语言实现redis的客户端与服务端有一些区别了因为前面介绍过服务端了这里我们来介绍客户端吧,希望文章对各位有帮助。 为了更好的了解redis协议,我们用php来实现...2016-11-25
  • jQuery+jRange实现滑动选取数值范围特效

    有时我们在页面上需要选择数值范围,如购物时选取价格区间,购买主机时自主选取CPU,内存大小配置等,使用直观的滑块条直接选取想要的数值大小即可,无需手动输入数值,操作简单又方便。HTML首先载入jQuery库文件以及jRange相关...2015-03-15
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • JS实现的简洁纵向滑动菜单(滑动门)效果

    本文实例讲述了JS实现的简洁纵向滑动菜单(滑动门)效果。分享给大家供大家参考,具体如下:这是一款纵向布局的CSS+JavaScript滑动门代码,相当简洁的手法来实现,如果对颜色不满意,你可以试着自己修改CSS代码,这个滑动门将每一...2015-10-21
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • jQuery+slidereveal实现的面板滑动侧边展出效果

    我们借助一款jQuery插件:slidereveal.js,可以使用它控制面板左右侧滑出与隐藏等效果,项目地址:https://github.com/nnattawat/slideReveal。如何使用首先在页面中加载jquery库文件和slidereveal.js插件。复制代码 代码如...2015-03-15
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • PHP+jQuery翻板抽奖功能实现

    翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块翻转到背面,显示抽奖中奖信息。看似简单的一个操作过程,却包含着WEB技术的很多知识面,所以本文的读者应该熟...2015-10-21
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • SQLMAP结合Meterpreter实现注入渗透返回shell

    sqlmap 是一个自动SQL 射入工具。它是可胜任执行一个广泛的数据库管理系统后端指印, 检索遥远的DBMS 数据库等,下面我们来看一个学习例子。 自己搭建一个PHP+MYSQ...2016-11-25
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • android.os.BinderProxy cannot be cast to com解决办法

    本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20
  • PHP实现今天是星期几的几种写法

    复制代码 代码如下: // 第一种写法 $da = date("w"); if( $da == "1" ){ echo "今天是星期一"; }else if( $da == "2" ){ echo "今天是星期二"; }else if( $da == "3" ){ echo "今天是星期三"; }else if( $da == "4"...2013-10-04
  • Android 实现钉钉自动打卡功能

    这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
  • Android 开发之布局细节对比:RTL模式

    下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02