2012年04月05日

SQLiteデータベースを作成する


Androidアプリケーションでデータの保存や呼び出しを使いたいときは
標準でSQLiteを使用できます
各アプリケーションのディレクトリ以下に指定したファイル名で
データベースの実体であるファイルが作成されます

SQLiteとは・・・
サーバとしてではなくアプリケーションに組み込まれて利用される軽量のデータベースです
アプリケーション上で扱うデータを保存しておきたいけど
サーバにわざわざ保持する必要がない場合には軽量なSQLiteは非常に有効です
例えば・・・
(1)データを次々に蓄積して、その中からデータを抽出するタイプのアプリケーション
単語帳・メッセンジャーなど
(2)データを永続的に保持しておくタイプのアプリケーション
家計簿・メモなど
(3)大量のデータから任意のデータを探すタイプのアプリケーション
辞書・データベースアプリなど

SQLiteで扱うことのできるデータは以下のものがあります
NULL NULL値
INTEGER 符号付整数
REAL 浮動小数点数
TEXT テキスト
BLOB Binary Large OBject。入力データをそのまま格納

SQLiteデータベースを作成する
まずはSQLiteデータベースを作成してみます
データベースの作成にはSQLiteOpenHelperクラスを使用します
SQLiteOpenHelperクラスのコンストラクタは次のようになります
SQLiteOpenHelper(Context context, String fileName,
 SQLiteDatabase.CursorFactory factory, int version) 
context・・・コンテキストオブジェクト
fileName・・・データベース名
factory・・・通常nullを指定
version・・・データベースのバージョン

コンストラクタとは・・・

今回はデータベース名を“blog_testdb”、データベースのバージョンを“1”
としました
記録するデータは
text形式の“Name”と“Tel”
integer形式の“Age”の3つとしました
まずはDatabaseHelperのクラスを作ります
作成する場所はsrcフォルダの中にあるアクティビティと同列の場所
(今回はsrc/blog/test)
を右クリックで新規→クラスを選びます
device75.png

名前に“DatabaseHelper”と入力しOKをおします
するとActivityと同列にDatabaseHelper.javaが作成されます
device76.png
中を以下のように変更します
package blog.test;

import android.content.Context;  
import android.database.sqlite.SQLiteDatabase;  
import android.database.sqlite.SQLiteOpenHelper;  
  
  
public class DatabaseHelper extends SQLiteOpenHelper {  
   
    // データベース名   
    private final static String DB_NAME = "blog_testdb";  
    // データベースのバージョン   
    private final static int DB_VER = 1;  
   
    //コンストラクタ  
    public DatabaseHelper(Context context) {  
        super(context, DB_NAME, null, DB_VER);  
    }  
  
    //onCreateメソッド 
    //データベースが作成された時に呼ばれます。
    @Override  
    public void onCreate(SQLiteDatabase db) {  
        String sql = "";  
        sql += "create table MyTable (";  
        sql += " _id integer primary key autoincrement";  
        sql += ",Name text not null";  
        sql += ",Tel text";  
        sql += ",Age integer";  
        sql += ")";  
        db.execSQL(sql);  
    }  
  
    /* 
     * onUpgradeメソッド 
     * onUpgrade()メソッドはデータベースをバージョンアップした時に呼ばれる
     */  
    @Override  
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
    
    }  
  
}  
データベースが存在しない状態でデータベースをオープンしようとすると
onCreateメソッドが呼ばれます
その中でMyTableというテーブルが作成されます
" _id integer primary key autoincrement"では
Noに自動連番で0から順番に数字が割り振られていきます

わかりやすくエクセルで例えると
データベース名・・・エクセルファイル名(○○.xls)
テーブル名・・・シート名(sheet1など)
テーブル・・・列(今回はNo・Name・Tel・Age)
これに自分で追加したい項目を行として追加していきます
これでDatabaseHelperクラスは完成しましたがデータベースは作成されていません
MainActivityでDatabaseHelperクラスを実行し
データベースを作成します
MainActibity.java
package blog.test;
 
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
 
public class MainActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	        super.onCreate(savedInstanceState);
        setTitle("MainActivity");
        setContentView(R.layout.main);
        
        //データベースヘルパーのインスタンスを作成する(まだデータベースはできない)  
        DatabaseHelper dbHelper = new DatabaseHelper(this);  
        //データベースオブジェクトを取得する(データベースにアクセスすると作成される。)  
        SQLiteDatabase db = dbHelper.getWritableDatabase();   
        //データベースを閉じる  
        db.close();  
	
    }
}
これでpackage blog.test専用のデータベースが作成されました

データベースの確認の仕方
スポンサードリンク

posted by kenken at 14:17 | Comment(0) | TrackBack(0) | データベース SQLite | このブログの読者になる | 更新情報をチェックする

フォント関連属性を変更する(3)


前回まではフォントスタイルと影を変更しました
textstyleとtypefaceを変更する
フォントの影の設定をする
今回はフォントの幅を変更したいと思います

フォントの横幅を変更する
フォントの幅を変更するには
textScaleX テキストの横方向の拡大率
を使用します
これをそれぞれ1、1.5、2、5と設定した例を示します
main.xmlを以下のように変更します
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >

    <TextView
    	android:id="@+id/textView1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう 指定なし" />

    <TextView
    	android:id="@+id/textView2"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう 1.0" android:textScaleX="1"/>
    <TextView
    	android:id="@+id/textView3"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう 1.5" android:textScaleX="1.5"/>

    <TextView
    	android:id="@+id/textView4"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう 2" android:textScaleX="2"/>
    <TextView
    	android:id="@+id/textView5"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう 5" android:textScaleX="5"/>

    
</LinearLayout>
結果は次のようになります
device74.png
フォントの幅が変更されています
5はかなり幅広になってますねww
スポンサードリンク

posted by kenken at 11:05 | Comment(0) | TrackBack(0) | ウィジェット トースト | このブログの読者になる | 更新情報をチェックする

フォント関連属性を変更する(2)


フォントの影の設定をする
前回はtextstyleとtypefaceを設定しました
textstyleとtypefaceを変更する
今回は
shadowColor 文字の影の色
shadowDx 影をX方向にずらす値
shadowDy 影をY方向にずらす値
shadowRadius 影のぼやけ具合
の設定をしたいと思います
shadowColorを赤に設定しそのほかのパラメータを変更していきたいと思います
main.xmlを以下のように変更しました
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >

    <TextView
    	android:id="@+id/textView1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDx="10" android:shadowDy="10" 
    	 android:shadowRadius="1"/>

    <TextView
    	android:id="@+id/textView2"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDy="10" 
    	 android:shadowRadius="1"/>
    <TextView
    	android:id="@+id/textView3"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDx="10"
    	 android:shadowRadius="1"/>

    <TextView
    	android:id="@+id/textView4"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDx="-10" android:shadowDy="-10" 
    	 android:shadowRadius="1"/>
    <TextView
    	android:id="@+id/textView5"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDy="-10" 
    	 android:shadowRadius="1"/>
    <TextView
    	android:id="@+id/textView6"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう " android:shadowColor="#f00"
    	 android:shadowDx="-10" 
    	 android:shadowRadius="1"/>
    <TextView
    	android:id="@+id/textView7"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう " android:shadowColor="#f00"
    	 android:shadowDx="5" android:shadowDy="5" 
    	 android:shadowRadius="5"/>
        <TextView
    	android:id="@+id/textView8"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう " android:shadowColor="#f00"
    	 android:shadowDx="5" android:shadowDy="5" 
    	 android:shadowRadius="10"/>
    
</LinearLayout>
結果は以下のようになります
device73.png
影をずらしたりぼかしたりすることで雰囲気が出ます

スポンサードリンク

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。