Android とデータベースの連結 1 データベースオープンヘルパー SQLite は データベースを1つのファイルで扱うので 指定のデータベースがないときは作成し あるときは 既存のファイルを開く という処理が必要です そういう一連の処理をしてくれるのが SQLiteOpenHelper クラス

Size: px
Start display at page:

Download "Android とデータベースの連結 1 データベースオープンヘルパー SQLite は データベースを1つのファイルで扱うので 指定のデータベースがないときは作成し あるときは 既存のファイルを開く という処理が必要です そういう一連の処理をしてくれるのが SQLiteOpenHelper クラス"

Transcription

1 Android Programming and Database IS04 組み込み 1

2 Android とデータベースの連結 1 データベースオープンヘルパー SQLite は データベースを1つのファイルで扱うので 指定のデータベースがないときは作成し あるときは 既存のファイルを開く という処理が必要です そういう一連の処理をしてくれるのが SQLiteOpenHelper クラスです これを継承して テーブル作成 初期うデータ挿入まで定義しておきます package jp.ac.neec.kmt.is04.takata; import android.content.context; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqlitedatabase.cursorfactory; import android.database.sqlite.sqliteopenhelper; public class DBHelper extends SQLiteOpenHelper { public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor public void oncreate(sqlitedatabase db) { // TODO Auto-generated method stub String sql = "create table planet_table (" + "id integer primary key autoincrement," + "name text," + "image text" + ")"; // テーブル作成 sql="insert into planet_table (name,image) values(' 水星 ','mercury.jpg')"; sql="insert into planet_table (name,image) values(' 金星 ','venus.jpg')"; sql="insert into planet_table (name,image) values(' 地球 ','earth.jpg')"; sql="insert into planet_table (name,image) values(' 火星 ','mars.jpg')"; sql="insert into planet_table (name,image) values(' 木星 ','jupiter.jpg')"; 2

3 sql="insert into planet_table (name,image) values(' 土星 public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { // TODO Auto-generated method stub 2 主プログラムからオープンヘルパーを呼び出してデータベースを使えるようにする Activity.java SQLiteDatabase db; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DBHelper dbhelper = new DBHelper(this, "planet_db", null, 1); db = dbhelper.getwritabledatabase(); new DBHelper(this, "planet_db", null, 1); このクラス, データベース名, 特別なカーソルを使うか?, DB 番号 SQLiteOpenHelper 戻り値 SQLiteDatabase SQLiteDatabase メソッド getreadabledatabase() 読み込み専用でデータベースを開く getwritabledatabase() 書き込みもできるデータベースを開く 3 SQL を発行する Select 文のようにデータを読み出す SQL と delete 文や insert 文のようにデータベースに影響を与える SQL とで扱いが違います データの挿入や削除の場合 sql="insert into photo_table (name,title) values('mercury.jpg',' 水星 ')"; 3

4 データの読み出しの場合 Cursor cursor = null; sql = "select * from photo_table"; cursor = db.rawquery(sql, null); 4 データの読み出しデータを読み出した瞬間は 先頭のデータの前を指しています カーソル データ1 データ2 まず 先頭のデータを指すようにカーソルを移動します cursor.movetofirst(); カーソル データ 1 データ 2 カーソル移動のメソッド (Cursor クラス ) 戻り値メソッド boolean move(into offset) 現在のカーソル位置から相対値で移動する boolean movetofirst() 先頭位置に移動する boolean movetolast() 最後の位置に移動する boolean movetonext() 次の行に移動する boolean movetoposition(int position) 絶対値に移動する boolean movetoprevious() 前の行に移動するいずれも移動できなかったとき false となる 4

5 カーソル位置のデータを読み込む データの種類によってメソッドが異なります 引数に カラム位置を指定する ( 最初のカラムは 0) String name=cursor.getstring(1); 戻り値 メソッド double getdouble(int columnindex) int getint(int columnindex) long getlong(int columnindex) String getstring(int columnindex) その他のメソッド戻り値 int int int String int int boolean boolean boolean boolean boolean メソッド getcolumncount() カラム数を得る getcolumnindex(string columnname) カラム名からカラム番号を得る 指定の名前がないときは-1 が返る getcolumnindexorthrow(string columnname) カラム名からカラム番号を得る 指定の名前がないときは例外を投げる getcolumnname(int columnindex) カラム番号からカラム名を得る getcount() 総行数を返す getposition() 現在カーソルがある位置を求める isafterlast() 最後の行より後にカーソルがあるか? isbeforfirst() 最初の行より前にカーソルがあるか? isfirst() 先頭行にカーソルがあるか? islast() 最終行にカーソルがあるか? isnull(int columnindex) 指定のカラムが NULL か? 5

6 プログラム例データベースの最初のレコードを表示する Activity package jp.ac.neec.kmt.is04.takata; import java.io.file; import android.app.activity; import android.database.cursor; import android.database.sqlite.sqlitedatabase; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.os.bundle; import android.os.environment; import android.widget.imageview; import android.widget.textview; public class HelloDBActivity extends Activity { SQLiteDatabase db; Cursor cursor = null; 6

7 /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DBHelper dbhelper = new DBHelper(this, "planet_db", null, 1); db = dbhelper.getwritabledatabase(); String sql = "select * from planet_table"; cursor = db.rawquery(sql, null); cursor.movetofirst(); String name=cursor.getstring(1); String image=cursor.getstring(2); System.out.println("name="+name); File dir = Environment.getExternalStorageDirectory(); dir = new File(dir, "Pictures"); String path = dir.getabsolutepath(); Bitmap bitmap = BitmapFactory.decodeFile(path+"/"+image); TextView textview = (TextView) this.findviewbyid(r.id.planet_name); ImageView imageview = (ImageView) this.findviewbyid(r.id.planet_image); textview.settext(name); imageview.setimagebitmap(bitmap); データベースの場所 :data/data/( パッケージ名 )/database/ この中のファイルを削除すると データベースは削除されます 7

8 データベースからリストを表示する SDカード上の画像ファイルをすべて表示するのではなく データベースの情報をもとに SDカード上の画像を選んで表示するプロジェクトです 1 レイアウトの作成プログラミング編 p43 を参考に メインのレイアウトと 1 行分のレイアウトを設計してください ( 画像を載せる場合には 画像のサイズが大きくなりすぎないように 最初からサイズを指定しておくとよい ) android:layout_width="85dp" android:layout_height="85dp" 2 データベースヘルパークラスの作成データベースを作成し 初期データをインサートしておく そのとき コマンドで SQL が正しいことを確認しておく 3 Activity からでデータベースヘルパーのインスタンス作成し データベースとの連携に問題がないことを実験しておく ( データベースプログラミング編 p3) これはあとでアダプタに移動します Activity.java SQLiteDatabase db; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DBHelper dbhelper = new DBHelper(this, "planet_db", null, 1); db = dbhelper.getwritabledatabase(); 4 1 行分のデータを格納するクラスの作成プログラミング編 p44 を参考に ただし 画像がある場合でも データベースに格納されているのはファイル名なので String にしておくのがおすすめ ビットマップ化は 表示のときに行う 5 アダプタの作成プログラミング編 p45 を参考に ただし 読み込むのはSDカードではなく データベースになります Adapter // コンストラクタ public DataListAdapter(Context c) { // レイアウトとデータを統合させるおまじない 8

9 layoutinflater = (LayoutInflater) c.getsystemservice(context.layout_inflater_service); // 袋をインスタンス化 list = new ArrayList<LineData>(); // ここからデータベースから情報を取得する DBHelper dbhelper = new DBHelper(c, "planet_db", null, 1); db = dbhelper.getwritabledatabase(); String sql = "select * from planet_table"; cursor = db.rawquery(sql, null); cursor.movetofirst(); while(cursor.movetonext()){ //DBから全部読む int id = cursor.getint(0); String name=cursor.getstring(1); String image=cursor.getstring(2); System.out.println(id + " " + name + " " + image); LineData one = new LineData(id, name, image); list.add(one); getview で画像のファイル名からビットマップに変換します そのために コンストラクタで Path を取得しておくとよいでしょう getcount でデータの個数を返してください プログラミング編 p46 参照 6 Activity で表示しますプログラミング編 p47 参照 9

10 リストをタップして 次の画面に進む リストをタップして 詳細情報を表示するようにします 1 リストにイベントをつけますプログラム編 p49 2 第 2 画面を設計します プログラム編 p51~ 3 第 2 画面をマニフェストに登録しますプログラム編 p55~ 4 Intent を使って第 2 画面を呼び出しますプログラム編 p55 5 第 2 画面から戻るボタンでメイン画面に戻りますプログラム編 p58 6 リスト中の選ばれたデータを第 2 画面に送りますここでは データベース 1 行分のデータをまるごと第 2 画面に送ります そのためには オブジェクトがシリアライズ化できなければなりません 文字や数値だけからなるデータはシリアライズ化できます public class LineData implements Serializable { private static final long serialversionuid = 1L; private int id; //ID private String name; // 名前 private String image; // 画像ファイル名 10

11 Activity public void onitemclick(adapterview<?> parent, View view, int position, long id) { // TODO Auto-generated method stub LineData data = adapter.getitem(position); Intent intent = new Intent(this, SecondActivity.class); intent.putextra("data", adapter.getitem(position)); startactivityforresult(intent, 1); 7 第 2 画面でデータをうけとり 表示します第 2Activity protected void oncreate(bundle savedinstancestate) { // TODO Auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.second); subtext = (TextView) this.findviewbyid(r.id.textsub); subimage = (ImageView) this.findviewbyid(r.id.imagesub); Intent intent = this.getintent(); LineData data = (LineData) intent.getserializableextra("data"); subtext.settext(subtext.gettext() + data.getname()); File dir = Environment.getExternalStorageDirectory(); dir = new File(dir, "Pictures"); String path = dir.getabsolutepath(); Bitmap bitmap = BitmapFactory.decodeFile(path+"/"+ data.getimage()); subimage.setimagebitmap(bitmap); 第 2 画面で新たにデータベースを参照することもできます 11

12 main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" /> <ListView android:layout_height="match_parent" android:layout_width="match_parent" > </ListView> </LinearLayout> list_item.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:layout_width="85dp" 12

13 android:layout_height="85dp" android:layout_gravity="center_vertical" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:text="test" android:textsize="16sp" /> </LinearLayout> DBHelper package jp.ac.neec.kmt.is04.takata; import android.content.context; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqlitedatabase.cursorfactory; import android.database.sqlite.sqliteopenhelper; public class DBHelper extends SQLiteOpenHelper { public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor public void oncreate(sqlitedatabase db) { // TODO Auto-generated method stub String sql = "create table planet_table (" + "id integer primary key autoincrement," + "name text," + "image text" 13

14 + ")"; // テーブル作成 sql="insert into planet_table (name,image) values(' 水星 ','mercury.jpg')"; sql="insert into planet_table (name,image) values(' 金星 ','venus.jpg')"; sql="insert into planet_table (name,image) values(' 地球 ','earth.jpg')"; sql="insert into planet_table (name,image) values(' 火星 ','mars.jpg')"; sql="insert into planet_table (name,image) values(' 木星 ','jupiter.jpg')"; sql="insert into planet_table (name,image) values(' 土星 public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { // TODO Auto-generated method stub LineData package jp.ac.neec.kmt.is04.takata; public class LineData implements Serializable { private static final long serialversionuid = 1L; private int id; //ID private String name; // 名前 private String image; // 画像ファイル名 // コンストラクタ public LineData(int id, String name, String image) { 14

15 this.id = id; this.name = name; this.image = image; // セッタ ゲッタ public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public String getimage() { return image; public void setimage(string image) { this.image = image; 15

16 DataListAdapter package jp.ac.neec.kmt.is04.takata; import java.io.file; import java.util.arraylist; import android.content.context; import android.database.cursor; import android.database.sqlite.sqlitedatabase; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.os.environment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.imageview; import android.widget.textview; public class DataListAdapter extends BaseAdapter { private ArrayList<LineData> list; private LayoutInflater layoutinflater = null; private SQLiteDatabase db; private Cursor cursor = null; private String path; // コンストラクタ public DataListAdapter(Context c) { // レイアウトとデータを統合させるおまじない layoutinflater = (LayoutInflater) c.getsystemservice(context.layout_inflater_service); // 袋をインスタンス化 list = new ArrayList<LineData>(); // ここからデータベースから情報を取得する 16

17 DBHelper dbhelper = new DBHelper(c, "planet_db", null, 1); db = dbhelper.getwritabledatabase(); String sql = "select * from planet_table"; cursor = db.rawquery(sql, null); cursor.movetofirst(); while(cursor.movetonext()){ int id = cursor.getint(0); String name=cursor.getstring(1); String image=cursor.getstring(2); System.out.println(id + " " + name + " " + image); LineData one = new LineData(id, name, image); list.add(one); File dir = Environment.getExternalStorageDirectory(); dir = new File(dir, "Pictures"); path = dir.getabsolutepath(); System.out.println("path="+path); // public int getcount() { // TODO Auto-generated method stub return public Object getitem(int arg0) { // TODO Auto-generated method stub return null; 17

18 @Override public long getitemid(int arg0) { // TODO Auto-generated method stub return public View getview(int position, View convertview, ViewGroup parent) { // TODO Auto-generated method stub convertview = layoutinflater.inflate(r.layout.list_item, null); TextView idview = (TextView) convertview.findviewbyid(r.id.idarea); ImageView imageview = (ImageView) convertview.findviewbyid(r.id.imagearea); TextView nameview = (TextView)convertView.findViewById(R.id.nameArea); idview.settext("" + list.get(position).getid()); Bitmap bitmap = BitmapFactory.decodeFile(path+"/"+list.get(position).getImage()); imageview.setimagebitmap(bitmap); imageview.setscaletype(imageview.scaletype.center_crop); nameview.settext(list.get(position).getname()); System.out.println("name="+list.get(position).getName()); return convertview; public ArrayList<LineData> getlist(){ return list; 18

19 Activity package jp.ac.neec.kmt.is04.takata; import android.app.activity; import android.database.sqlite.sqlitedatabase; import android.os.bundle; import android.widget.listview; public class HelloDBListActivity extends Activity { /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DataListAdapter adapter = new DataListAdapter(this); ListView listview = (ListView) this.findviewbyid(r.id.listmain); listview.setadapter(adapter); public void onitemclick(adapterview<?> parent, View view, int position, long id) { // TODO Auto-generated method stub LineData data = adapter.getitem(position); testtext.settext(data.getname()); Intent intent = new Intent(this, SecondActivity.class); intent.putextra("position", position); intent.putextra("data", adapter.getitem(position)); //intent.setaction(intent.action_view); startactivityforresult(intent, 1); 19

20 データベースの検索データベースは 必要なデータを必要なときに必要なだけ取り出せなければなりません そのための機能が検索です 検索して得られるのは 1 件だけとは限りません いろいろなケースを想定してアプリを設計しましょう 1 オープンヘルパーの作成テーブルを作成 初期データをインサートあらかじめコマンドを実行してSQL 文が正しいことを検証しておく public void oncreate(sqlitedatabase db) { // TODO Auto-generated method stub String sql = "create table town_table(" + "id integer primary key autoincrement," + "ken char(20) not null," + "town char(20)" +")"; // テーブル作成 sql = "insert into town_table (ken, town) values(' 東京 ', ' 蒲田 ')"; sql = "insert into town_table (ken, town) values(' 東京 ', ' 渋谷 ')"; sql = "insert into town_table (ken, town) values(' 東京 ', ' 新宿 ')"; 20

21 sql = "insert into town_table (ken, town) values(' 東京 ', ' 四谷 ')"; sql = "insert into town_table (ken, town) values(' 神奈川 ', ' 横浜 ')"; sql = "insert into town_table (ken, town) values(' 神奈川 ', ' 川崎 ')"; sql = "insert into town_table (ken, town) values(' 神奈川 ', ' 相模原 ')"; sql = "insert into town_table (ken, town) values(' 埼玉 ', ' 越谷 ')"; sql = "insert into town_table (ken, town) values(' 埼玉 ', ' 熊谷 ')"; sql = "insert into town_table (ken, town) values(' 千葉 ', ' 浦安 ')"; 2 ヘルパーの呼び出し Activity からヘルパーを呼び出して データベースを作成 DDMS でデータベースができていることを確認する data/data/< パッケージ名 >/< データベース名 > Activity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DBHelper dbhelper = new DBHelper(this, "town_db", null,1); db = dbhelper.getwritabledatabase(); // テスト TextView test1 = (TextView) this.findviewbyid(r.id.test_id); String sql = "select * from town_table"; Cursor cursor = db.rawquery(sql, null); test1.settext("" + cursor.getcount()); 21

22 3 データベース読み出しテストデータベースが入力されていることを確認するため 件数を調べて表示してみましょう TextView に ID をつけておきます public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DBHelper dbhelper = new DBHelper(c, "town_db", null,1); db = dbhelper.getwritabledatabase(); String sql = "select * from town_table"; Cursor cursor = db.rawquery(sql, null); TextView textview = (TextView) this.findviewbyid(r.id.test_id); textview.settext("" + cursor.getcount()); 4 画面レイアウト検索を行うためのテキストエディタとボタン それに結果を表示するリストを作成しておきます main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id = "@+id/test_id" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText 22

23 android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="3" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onclick="onclickgo" /> </LinearLayout> <ListView android:layout_height="match_parent" android:layout_width="match_parent" > </ListView> </LinearLayout> リストの 1 行分の定義 list_item.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <TextView android:id="@+id/text_ken" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/text_town" android:layout_width="0dp" 23

24 android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> 5 データを受け取るクラスデータベースの 1 件分を受け取るクラスを作成 LineData.java 6 アダプタデータベースから読み込んでリストを作成 public DataListAdapter(Context c) { layoutflater = (LayoutInflater) c.getsystemservice(context.layout_inflater_service); list = new ArrayList<LineData>(); DBHelper dbhelper = new DBHelper(c, "town_db", null,1); db = dbhelper.getwritabledatabase(); String sql = "select * from town_table"; Cursor cursor = db.rawquery(sql, null); while(cursor.movetonext()){ int id = cursor.getint(0); String ken = cursor.getstring(1); String town = cursor.getstring(2); System.out.println(id + " " + ken + " " + town); LineData one = new LineData(id,ken, town); list.add(one); 24

25 7 ためしに全データ表示 Activity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DataListAdapter adapter = new DataListAdapter(this); ListView listview = (ListView) this.findviewbyid(r.id.result_id); listview.setadapter(adapter); 25

26 8 ボタンのイベントハンドラを記述 EditText からテキストを読み込んでおく これがキーワードになる Activity public void onclickgo(view view){ EditText ev = (EditText) this.findviewbyid(r.id.key_ed); String key = ev.gettext().tostring(); 9 アダプタにもう一つのコンストラクタ public DataListAdapter(Context c, String key) { layoutflater = (LayoutInflater) c.getsystemservice(context.layout_inflater_service); list = new ArrayList<LineData>(); DBHelper dbhelper = new DBHelper(c, "town_db", null,1); db = dbhelper.getwritabledatabase(); String sql = "select * from town_table where ken='" + key + "'"; Cursor cursor = db.rawquery(sql, null); while(cursor.movetonext()){ int id = cursor.getint(0); String ken = cursor.getstring(1); String town = cursor.getstring(2); System.out.println(id + " " + ken + " " + town); LineData one = new LineData(id,ken, town); list.add(one); 10 アダプタの呼び出し Activity public void onclickgo(view view){ EditText ev = (EditText) this.findviewbyid(r.id.key_ed); String key = ev.gettext().tostring(); DataListAdapter adapter = new DataListAdapter(this, key); ListView listview = (ListView) this.findviewbyid(r.id.result_id); listview.setadapter(adapter); 26

27 データベースの登録 データベースにデータを新規に登録します 1 まず 入力画面を作ります main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/test_tx" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/ken_ed" 27

28 android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="1" /> <EditText android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="1" /> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:onclick="onclickreg" /> </LinearLayout> </LinearLayout> 2 データベースヘルパーを作りますすでにできているデータベースを使うときは どうせ oncreate は動かないので 何も書かなくてOK 3 データベースと連結します public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DBHelper dbhelper = new DBHelper(this, "town_db", null, 1); db = dbhelper.getwritabledatabase(); 28

29 4 ボタンのイベント Activity public void OnClickReg(View view){ EditText kenarea = (EditText) this.findviewbyid(r.id.ken_ed); EditText townarea = (EditText) this.findviewbyid(r.id.town_ed); String ken = kenarea.gettext().tostring(); String town = townarea.gettext().tostring(); String sql = "insert into town_table (ken, town) values('" + ken + "','" + town + "')"; System.out.println(sql); // SQL を発行するまえに 正しいかどうか チェックしてください sql 文が log に表示されるので これを選んでファイルに保存するファイルを開いて コマンドプロンプトで実行してみる sqlite> insert into town_table (ken, town) values(' 東京 ',' 銀座 '); sqlite> select * from town_table; 1 東京 蒲田 2 東京 渋谷 3 東京 新宿 4 東京 四谷 5 神奈川 横浜 6 神奈川 川崎 7 神奈川 相模原 8 埼玉 越谷 9 埼玉 熊谷 10 千葉 浦安 11 東京 銀座 sqlite> 挿入されることを確認してから コメント文をはずして実行する 検索用アプリで確認する 29

30 銀座が追加されており 成功した 30

31 リストから個別へ リスト表示から 1 つ選んで個別詳細データを表示します セカンドアクティビティ側で あらためてデータベースを読み直します ID を指定して読み込みができるようにアダプタのコンストラクタを追加 // コンストラクタ public DataListAdapter(Context c) { String sql = "select * from planet_table"; dataset(c, sql); public DataListAdapter(Context c,int id) { String sql = "select * from planet_table where id="+id; dataset(c, sql); public void dataset(context c, String sql){ // レイアウトとデータを統合させるおまじない layoutinflater = (LayoutInflater) c.getsystemservice(context.layout_inflater_service); // 袋をインスタンス化 list = new ArrayList<LineData>(); // ここからデータベースから情報を取得する DBHelper dbhelper = new DBHelper(c, "planet_db", null, 1); 31

32 db = dbhelper.getwritabledatabase(); cursor = db.rawquery(sql, null); //cursor.movetofirst(); while(cursor.movetonext()){ int id = cursor.getint(0); String name=cursor.getstring(1); String image=cursor.getstring(2); System.out.println(id + " " + name + " " + image); LineData one = new LineData(id, name, image); list.add(one); File dir = Environment.getExternalStorageDirectory(); dir = new File(dir, "Pictures"); path = dir.getabsolutepath(); System.out.println("path="+path); セカンドアクティビティでアダプタを作り直して表示 protected void oncreate(bundle savedinstancestate) { // TODO Auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.second); subtext = (TextView) this.findviewbyid(r.id.textsub); subimage = (ImageView) this.findviewbyid(r.id.imagesub); Intent intent = this.getintent(); int id = intent.getintextra("id", 0); subtext.settext("" + id); adapter = new DataListAdapter(this, id); int size = adapter.getcount(); LineData data = adapter.getitem(0); 32

33 subtext.settext(subtext.gettext() + data.getname()); dir = new File(dir, "Pictures"); String path = dir.getabsolutepath(); Bitmap bitmap = BitmapFactory.decodeFile(path+"/"+ data.getimage()); subimage.setimagebitmap(bitmap); 詳しい説明をファイルから読んでみよう ( とりあえずファイル固定 ) セカンドアクティビティ File dir = Environment.getExternalStorageDirectory(); String description = readfromfile("earth.txt"); TextView desarea = (TextView) this.findviewbyid(r.id.desriptionsub); desarea.settext(description); private String readfromfile(string filename){ String readstring = ""; String SDFile = android.os.environment.getexternalstoragedirectory().getpath() + "/Text/earth.txt"; File file = new File(SDFile); try{ FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis,"UTF-8"); BufferedReader br= new BufferedReader(isr); String s; while ((s = br.readline() )!= null){ readstring = readstring+s+" r n"; br.close(); isr.close(); fis.close(); catch(filenotfoundexception e){ e.printstacktrace(); 33

34 catch(unsupportedencodingexception e){ e.printstacktrace(); catch (IOException e) { e.printstacktrace(); return readstring; 34

35 CSV からデータベースに読み込み Excel で作成したデータを CSV で書き出して それを使ってデータベースに読み込みを行うと データベースのデータ作成が楽にできます Helper を作成します データベースがまだない場合には public void oncreate(sqlitedatabase db) { // TODO Auto-generated method stub ここでデータベースをCreateする Activity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); // データベースに接続する DBHelper dbhelper = new DBHelper(this, "town_db", null,1); db = dbhelper.getwritabledatabase(); // ファイルに接続する String readstring=""; String SDFile = Environment.getExternalStorageDirectory().getPath() + "/Text/city.csv"; File file = new File(SDFile); try { // ストリームを確立する FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis,"UTF-8"); BufferedReader br= new BufferedReader(isr); String s; while ((s = br.readline() )!= null){ //1 行分の処理 String[] part = s.split(","); //, で分割する 35

36 //insert 文を組み立てる String sql = "insert into town_table (ken, town) values('"+part[0]+"', '"+part[1]+"')"; System.out.println(sql); readstring += sql + " r n"; //sql = "select * from town_table"; //db.rawquery(sql, null); br.close(); isr.close(); fis.close(); catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printstacktrace(); catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printstacktrace(); catch (IOException e) { // TODO Auto-generated catch block e.printstacktrace(); // 確認用にSQLを表示 TextView tv = (TextView) this.findviewbyid(r.id.text_id); tv.settext(readstring); 36

37 ファイル名を入力するエディットテキストを用意し データ取り込みボタンでデータベースに追加するアプリなども考えられます 37

38 正規表現 入力データに制限をかけ 不正なデータがデータベースに登録されないようにしましょうそういうときには 文字列のマッチングを調べる正規表現が便利です あいう 通常の文字リテラル. 任意の 1 文字 [ あいう ] ここに含まれる任意の 1 文字 [^あいう] ここに含まれる任意の 1 文字以外 ^あ 先頭の文字を指定 あ $ 最後の文字を指定 あ? 0 回または 1 回 あ + 1 回以上の繰り返し あ * 0 回以上の繰り返し あ {n, m n 回以上 m 回以下の繰り返し あ {n, n 回以上の繰り返し あ {n n 回の繰り返し ( あ い ) 選択どちらでもよい { グループ ( 繰り返しの単位指定 ) プログラム例 AlertDialog.Builder dlg; dlg = new AlertDialog.Builder(this); dlg.settitle("test"); dlg.setpositivebutton(" 閉じる ", null); EditText et = (EditText) this.findviewbyid(r.id.input_et); Pattern pattern = Pattern.compile("^あ.*$"); Matcher matcher = pattern.matcher(et.gettext()); if(matcher.matches()){ dlg.setmessage("ok"); System.out.println("OK"); else{ dlg.setmessage("ng"); System.out.println("NG"); dlg.show(); 38

39 アプリケーション作品制作について 設計項目 1. 画面遷移図 2. データベース仕様書 フィールド名 内容 型 備考 ( 内容説明と属性 primary key など ) id 主キー Integer primary Key autoincrement 3. 画像やテキストファイルがある場合には 保存場所 ( フォルダ階層 ) 4. データベースと画面との関係 39

日 力力 生 行行 入 入 力力 生 用 方

日 力力 生 行行 入 入 力力 生 用 方 日 力力 生 行行 入 入 力力 生 用 方 力力 生 行行 自 行行 生 力力 生 一 二 力力 生 力力 力力 方 ファイル書き込み Androidプロジェクトの 生成 新規Androidプロジェクトを下記の設定値で作成 項 目名 設定値 プロジェクト名 Sample9 ビルドターゲット Android 2.2にチェックを付 ける アプリケーション名 Sample9 パッケージ名 jp.ac.uot

More information

Microsoft Word - Android_SQLite講座_画面800×1280

Microsoft Word - Android_SQLite講座_画面800×1280 Page 5 5 アクティビティ ( 一覧 ) を作成する ファイル名 : src/jp/edu/mie/view010.java ( 新規作成 ) /* * View010 */ import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view;

More information

Microsoft Word - Android_SQLite講座_画面800×1280

Microsoft Word - Android_SQLite講座_画面800×1280 Page 24 11 SQLite の概要 Android にはリレーショナルデータベースである SQLite が標準で掲載されています リレーショナルデータベースは データを表の形で扱うことができるデータベースです リレーショナルデータベースには SQL と呼ばれる言語によって簡単にデータの操作や問い合わせができようになっています SQLite は クライアントサーバ形式ではなく端末の中で処理が完結します

More information

テーブルの確認 sqlite>.tables.tables コマンドでデータベース内のテーブル一覧を表示する テーブルスキーマの表示 sqlite>.schema mytable.schema コマンドで指定のテーブルのスキーマを表示できる テーブル出力の整形.explain コマンドを使うと テー

テーブルの確認 sqlite>.tables.tables コマンドでデータベース内のテーブル一覧を表示する テーブルスキーマの表示 sqlite>.schema mytable.schema コマンドで指定のテーブルのスキーマを表示できる テーブル出力の整形.explain コマンドを使うと テー Sqlite 関連コマンド紹介 adb shell コマンド 現在 どのディレクトリに居るかは pwd コマンドでわかります pwd 次に今いるディレクトリ上にどんなファイル ディレクトリ一覧があるかを知るために ls コマンドを実行します ls ディレクトリへの移動は cd コマンドを実行します cd フォルダ ( ディレクトリ ) 名 tmp ディレクトリを作ってみます ディレクトリ作成は mkdir

More information

Taro-korattsu.jtd

Taro-korattsu.jtd ------------------------------------------------------------------------ No29 数字 ( テキスト ) を入力して計算方法 3x+1の問題 ( コラッツの問題 ) Ver2 Copyright( C) K.Niwa 2014.08.10 ------------------------------------------------------------------------

More information

用 日 力力 生 大 用 生 目 大 用 行行

More information

補足資料 インテントによるアプリケーションとアクティビティの呼出し Android アプリのキモとなるインテントとは何? インテント ( 呼び出し要求 ) とは Android 独自の機能です 簡単にいえばアプリケーションや他のアクティビティを呼び出す機能ですが 他のアプリケーションを機能や扱えるデ

補足資料 インテントによるアプリケーションとアクティビティの呼出し Android アプリのキモとなるインテントとは何? インテント ( 呼び出し要求 ) とは Android 独自の機能です 簡単にいえばアプリケーションや他のアクティビティを呼び出す機能ですが 他のアプリケーションを機能や扱えるデ 補足資料 インテントによるアプリケーションとアクティビティの呼出し Android アプリのキモとなるインテントとは何? インテント ( 呼び出し要求 ) とは Android 独自の機能です 簡単にいえばアプリケーションや他のアクティビティを呼び出す機能ですが 他のアプリケーションを機能や扱えるデータ型式で 検索 して呼び出すことができるものです たとえば ウェブブラウザを呼び出したい場合 View

More information

android2.indd

android2.indd Chapter 10 第 10 章サンプルコード集 この章ではプログラミングの参考となるサンプルコードを掲載しています コード記載のない部分についてはプロジェクトのデフォルトです アクティビティ間のデータ受け渡しサンプル アプリケーション名 : ActivityResultTest プロジェクト名 : ActivityResultTest パッケージ名 : com.example.activitytest

More information

そして 取得した OutputStream インスタンスを使い 文字コードは UTF-8 として PrintWriter インスタンスを生成して あとは PrintWriter.append() で書き込みたい文字 列を渡して close() で保存する というだけです ファイルの読込み方法 それで

そして 取得した OutputStream インスタンスを使い 文字コードは UTF-8 として PrintWriter インスタンスを生成して あとは PrintWriter.append() で書き込みたい文字 列を渡して close() で保存する というだけです ファイルの読込み方法 それで Android: データを保存する方法 Android のアプリケーションで データを保存する方法を説明します 保存する方法としては以下のものがあります ファイルとして保存 Preference データベース (SQLite) ファイルへ書き込む Android のファイルへの書き出しはアクセス権限の設定部分があるので読み込みの openfileinput メソッドより 引数が増えています public

More information

26 editor.putint(pref_count_key, executecount); 27 // 変更した Preference を確定させる 28 editor.commit(); 29 } (c) 実行の様子実装して実行した様子を図 1 と図 2 に示す. 一度実行するごとに, カウン

26 editor.putint(pref_count_key, executecount); 27 // 変更した Preference を確定させる 28 editor.commit(); 29 } (c) 実行の様子実装して実行した様子を図 1 と図 2 に示す. 一度実行するごとに, カウン 保存 データを保存する方法として, 主に,3 種類ある. [1] SharedPreference [2] ファイル [3] データベース これらのうち, よく使いそうな,[1] と [2] の方法を説明する. (1) SharedPreference SharedPreference は, 変数名とその値のペアをアプリごとに記憶しておくことができ る機能である. たとえば, アプリを起動した回数を記憶しておいたり,

More information

非推奨メソッド等の掲載について

非推奨メソッド等の掲載について 非推奨メソッド等の掲載について スマートにプログラミング Android 入門編第 2 版 SDK 4/2.3 対応 (2012 年 6 月 11 日発行第 2 版第 1 刷 ) において 一部現在では非推奨となったレイアウト及びメソッドの利用が掲載されておりました お詫びと共に補足 訂正させて頂きます 下記にその対応について示します 株式会社リックテレコム書籍出版部 ( 情報更新日 :2012.8.14)

More information

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar Android 2 1 (Activity) (layout strings.xml) XML Activity (Intent manifest) Android Eclipse XML Preference, DataBase, File 3 2 Preference Preference Preference URL:[http://www.aichi-pu.ac.jp/ist/lab/yamamoto/android/android-tutorial/tutorial02/tutorial02.pdf]

More information

Microsoft Word - _Intent.doc

Microsoft Word - _Intent.doc public class Intent extends Object implements Parcelable Cloneable 英和 : 意図, 目的 intent が 意図 目的 を意味するように Android ではアプリ ( アクティビティ ) が何をしたいかという 意図 目的 のリクエスト メッセージをシステムに送ると, システムがそれを解釈 判断し, 適切なアクティビティへ渡す仕組みが備わっている

More information

Microsoft Word - Android_DI講座_画面800×1280

Microsoft Word - Android_DI講座_画面800×1280 Page 21 5 複数の画面を使う ( インテント Intent) インテントは アクティビティ間やアプリケーション間でやり取りするメッセージの役割を果たすものです インテントを送る事で アプリケーション内の画面遷移や他アプリケーションの呼び出しを行います 主にアクティビティを起動する際のパラメータに使われます intent: 意思 付加情報 ( 配列 文字列 整数型など ) を別アプリケーションに通知でき

More information

ファイルを直接編集する画面を切り替えることができる. 図 3 標準のレイアウトを削除する (2) グラフィカル レイアウト画面で LinearLayout(Vertical) を追加するパレットウィンドウの レイアウト の中にある LinearLayout(Vertical) をドラッグして, 編集

ファイルを直接編集する画面を切り替えることができる. 図 3 標準のレイアウトを削除する (2) グラフィカル レイアウト画面で LinearLayout(Vertical) を追加するパレットウィンドウの レイアウト の中にある LinearLayout(Vertical) をドラッグして, 編集 BMI 計算アプリ身長と体重をユーザが入力し, その値を計算して,BMI 値を表示するアプリケーションを作る. 1. プロジェクトを作る新規 Android アプリケーション プロジェクトを作る.HelloWorld アプリケーションをつくるときと同じで良いが, アプリケーション名, プロジェクト名, パッケージ名は以下のように設定する. 図 1 新規アプリケーションの設定をする 2. レイアウトを設定する

More information

2-2. TableLayout TableLayout は任意のビューを表形式で配置したい場合に利用する (HTML の Table に近いイメー ジ ) 2-3. FrameLayout ビューを重ねて表示するためのレイアウト 後から配置した部品が前面に来る仕様となっている 3. まとめ レイア

2-2. TableLayout TableLayout は任意のビューを表形式で配置したい場合に利用する (HTML の Table に近いイメー ジ ) 2-3. FrameLayout ビューを重ねて表示するためのレイアウト 後から配置した部品が前面に来る仕様となっている 3. まとめ レイア 1. レイアウトの基本 Android でレイアウトを作成する方法には XML で定義する方法 と プログラム上から作成する方法 の 2 つがある XML で定義する方が読みやすく変更も容易なので 基本的には XML でレイアウトを作成し 動的にレイアウトを変更したい場合にプログラムで記述するのが一般的である 2. レイアウトの種類 ビューを配置するベースとなるレイアウトについて説明する ここで紹介するレイアウト以外にも

More information

Prog2_2nd

Prog2_2nd 2017 年 10 月 5 日 ( 木 ) 実施 アクティビティアクティビティとは Android アプリのユーザインターフェイスの中で, 画面と関連付けられている最も基本的なのものがアクティビティ (Activity) である 複数の画面を利用するアプリには, それぞれの画面に対応したアクティビティが必要となる アクティビティは oncreateメソッドによって生成され, ondestroyメソッドによって消滅する

More information

Taro-twokansu3.jtd

Taro-twokansu3.jtd //------------------------------------------------ // // 2 次関数のグラフの広がり // y=ax^2 のグラフ // Ver3 // Copyright(C) K.Niwa 2014.08.09 // //------------------------------------------------ NO.33 エミュレータ画面例 [ アプリの概要

More information

mazec テクニカルガイド第5版(Android版)

mazec テクニカルガイド第5版(Android版) 法人向け mazec テクニカルガイド 外部アプリケーション連携 ( Android 版 ) 第 6 版 Android は Google Inc. の登録商標です その他記載された会社名 製品名等は 各社の登録商標もしくは商標 または弊社の商標です 本書は株式会社 MetaMoJi が作成したものであり マニュアルの著作権は 株式会社 MetaMoJi に帰属します 本書の内容は予告なく変更することがあります

More information

Hello, Android

Hello, Android HELLO, ANDROID Android ハンズオンセミナー Eclipse で作成するプロジェクトのひな型が Hello, Android のプロジェクトになっ ています 新しいプロジェクトを作成しながら 内部の構造を確認していきましょう 木南英夫 2009/08/06 HELLO, ANDROID Android ハンズオンセミナー ECLIPSE で新規のプロジェクトを作成する 新規のプロジェクトを作成します

More information

データベースからデータの 読 み 込 み Cursorクラス

データベースからデータの 読 み 込 み Cursorクラス アンドロイドのデータベースについて SQlite データベースからデータの 読 み 込 み Cursorクラス Cursorでデータをとってきます // 注 意 定 数 でDatabaseクラスの 中 にあるとします public static final String ID = " id"; public static final String NAME = "_name"; // 例 えばこんなデータベースがあるとして(SQLiteOpenHelperクラスを

More information

Prog2_2nd

Prog2_2nd 2016 年 10 月 6 日 ( 木 ) 実施 アクティビティアクティビティとは Android アプリのユーザインターフェイスの中で, 画面と関連付けられている最も基本的なのものがアクティビティ (Activity) である 複数の画面を利用するアプリには, それぞれの画面に対応したアクティビティが必要となる アクティビティは oncreateメソッドによって生成され, ondestroyメソッドによって消滅する

More information

2 // TODO Auto-generated method stub float x = event.getx(); float y = event.gety(); String action = ""; switch(event.getaction()) { case MotionEvent.

2 // TODO Auto-generated method stub float x = event.getx(); float y = event.gety(); String action = ; switch(event.getaction()) { case MotionEvent. 1 タッチイベントを取得する タッチパネルを操作すると, タッチイベントが ACTION_DOWN ACTION_MOVE( 繰返し ) ACTION_UP の順に発生する. このタッチイベントを取得するには, ontouchevent メソッドをオーバーライドする. また, dispatchtouchevent メソッドをオーバーライドしても, 同様の情報を取得することができる. dispatchtouchevent

More information

オブジェクト指向プログラミング・同演習 5月21日演習課題

オブジェクト指向プログラミング・同演習 5月21日演習課題 オブジェクト指向プログラミング 同演習 5 月 21 日演習課題 問題 1 配列の例外処理例外が発生する可能性のある処理を try で囲み その後に catch で例外を捕捉します 例外処理の終了処理として finally が行われます これは書かなくて自動的に行われます 提出課題 1 (Kadai052301.java) 以下のプログラムは例外処理をしていない ArrayIndexOutOfBoundsException

More information

日 用 用 面 示 用 用 方

日 用 用 面 示 用 用 方 日 用 用 面 示 用 用 方 用 用 用 用 用 用 用 面 用

More information

Android osの歴史 1.6から2.3まで携帯のみ 3.0 タブレットのみ 4.0 タブレットで培ったUIなど の技術を携帯でも 使えるとうにと APIなんかが統合された

Android osの歴史 1.6から2.3まで携帯のみ 3.0 タブレットのみ 4.0 タブレットで培ったUIなど の技術を携帯でも 使えるとうにと APIなんかが統合された Android 4.0 でのアプリの作り方 といってもCompatibility(互換性Sdk) で作ろう Android osの歴史 1.6から2.3まで携帯のみ 3.0 タブレットのみ 4.0 タブレットで培ったUIなど の技術を携帯でも 使えるとうにと APIなんかが統合された Android 4.0 以下のバージョンで全体の98.4% なので Android 4.0 の SDK で開発すると今のところ動く機種が少ない

More information

文字列操作と正規表現

文字列操作と正規表現 文字列操作と正規表現 オブジェクト指向プログラミング特論 2018 年度只木進一 : 工学系研究科 2 文字列と文字列クラス 0 個以上の長さの文字の列 Java では String クラス 操作 文字列を作る 連結する 文字列中に文字列を探す 文字列中の文字列を置き換える 部分文字列を得る 3 String クラス 文字列を保持するクラス 文字列は定数であることに注意 比較に注意 == : オブジェクトとしての同等性

More information

「Android Studioではじめる 簡単Androidアプリ開発」正誤表

「Android Studioではじめる 簡単Androidアプリ開発」正誤表 Android Studio Android 2016/04/19 Android Studio Android *1 Android Studio Android Studio Android Studio Android Studio Android PDF : Android Studio Android Android Studio Android *2 c R TM *1 Android

More information

スライド 1

スライド 1 Android の UI いろいろ 2009/09/12(Sat) 日本 Android の会 重村浩二 この資料内容の一部は Google が作成 提供しているコンテンツを複製したものでクリエイティブコモンズの表示 2.5 ライセンスに記載の条件に従って使用しています 今回の勉強会のターゲット領域は ココ です アジェンダ Android の Basic Design Icon Design が

More information

マルチ OS エンジンを使用した固定記憶域の操作 (テクノロジー・プレビュー) - パート 1

マルチ OS エンジンを使用した固定記憶域の操作 (テクノロジー・プレビュー) - パート 1 マルチ OS エンジンを使用した固定記憶域の操作 ( テクノロジー プレビュー ) - パート 1 この記事は インテル デベロッパー ゾーンに公開されている Working with persistent storage using Multi-OS Engine (Technology Preview)- Part 1 の日本語参考訳です このチュートリアルは 2 つのパートで構成されており インテルのマルチ

More information

Android でサービスしよう! 日本 Android の会 2 月 21 日大阪セミナ- 有山圭二 ( 有限会社シーリス )

Android でサービスしよう! 日本 Android の会 2 月 21 日大阪セミナ- 有山圭二 ( 有限会社シーリス ) Android でサービスしよう! 日本 Android の会 2 月 21 日大阪セミナ- 有山圭二 ( 有限会社シーリス ) 目次 サービスって何? サービスで何が出来るの? ハンズオン Service を開始する Service と Activity の違い? AIDL によるインターフェースの定義と実装 Activity からの操作 まとめ 発展 参考 2009/02/21 JAC 大阪セミナー

More information

補足資料 キーイベント処理サンプル package jp.co.keyevent; import android.app.activity; import android.os.bundle; import android.view.keyevent; import android.widget.t

補足資料 キーイベント処理サンプル package jp.co.keyevent; import android.app.activity; import android.os.bundle; import android.view.keyevent; import android.widget.t 補足資料 キーイベント処理サンプル package jp.co.keyevent; import android.app.activity; import android.os.bundle; import android.view.keyevent; import android.widget.toast; public class KeyEventSampleActivity extends Activity

More information

Microsoft Word - Android_DI講座_画面800×1280

Microsoft Word - Android_DI講座_画面800×1280 Page 12 4 ボタンが押されたらイベントを取り扱う ボタンの押下時に 入力された内容を確認するダイアログを表示するようにします 4.1 リソースを追記する 網掛け部分を追加してください ファイル名 : res/values/strings.xml < 省略 >

More information

マルチ OS エンジンを使用した固定記憶域の操作 (テクノロジー・プレビュー) - パート 2

マルチ OS エンジンを使用した固定記憶域の操作 (テクノロジー・プレビュー) - パート 2 マルチ OS エンジンを使用した固定記憶域の操作 ( テクノロジー プレビュー ) - パート 2 この記事は インテル デベロッパー ゾーンに公開されている Working with persistent storage using Multi-OS Engine (Technology Preview) - Part 2 の日本語参考訳です この記事は 固定記憶域の操作に関するチュートリアルのパート

More information

Prog1_15th

Prog1_15th 2017 年 7 月 27 日 ( 木 ) 実施 応用プログラム (3) キー検索 コレクションには, ハッシュテーブルと呼ばれるものがある これは, キー (key) と値 (value) とを組として保持しているものである 通常の配列が添字により各要素にアクセス出来るのに比べて, ハッシュテーブルではキーを用いて各値にアクセスすることが出来る キー及びそのキーから連想される値の組を保持していることから,

More information

Prog2_6th

Prog2_6th 2015 年 10 月 29 日 ( 木 ) 実施 レイアウトレイアウトの位置付け Android アプリで用いられる様々なレイアウト (Layout) は, それぞれ ViewGroup クラスを継承するクラスとして定義されているものであり,ViewGroup クラスは Viewクラスを継承するクラスである Viewクラスはユーザインタフェイスを構成する基本要素を表す ビュー (View) は画面上に長方形の領域を占め,

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 独習 Java ( 第 3 版 ) 6.7 変数の修飾子 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 Object クラスと Class クラス 6.7 変数の修飾子 (1/3) 変数宣言の直前に指定できる修飾子 全部で 7 種類ある キーワード final private protected public static transient volatile 意味定数として使える変数同じクラスのコードからしかアクセスできない変数サブクラスまたは同じパッケージ内のコードからしかアクセスできない変数他のクラスからアクセスできる変数インスタンス変数ではない変数クラスの永続的な状態の一部ではない変数不意に値が変更されることがある変数

More information

Prog2_10th

Prog2_10th 2017 年 12 月 7 日 ( 木 ) 実施 効果音の付加 SoundPool とは Android には音を処理するクラスが複数用意されているが, その中で SoundPool は, 予め音のデータをメモリ上に読み込んで再生するため, 長い音楽よりも短い音を扱うのに適している また,SoundPool では遅延が無いので, 効果音を付加したい場面で用いられる 授業の準備 1)Android Studio

More information

Prog2_10th

Prog2_10th 2013 年 11 月 28 日 ( 木 ) 実施 ファイル操作とディレクトリ操作今回の授業では,Java 言語でのファイル操作とディレクトリ操作とについて学習する ファイル操作ファイル操作は,C 言語プログラミングで学んだように, 次の順序で行う 1) ストリームを開く 2) ストリームからの入力, ストリームへの出力 3) ストリームを閉じる Java 言語では, ファイル操作に関係するクラスが複数用意されている

More information

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク 2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパークラス利用法:ArrayList... 5 例外:Exception... 6 ぬるぽ... 6 例外処理:try-catch-finaly...

More information

Android @vvakame @vvakame GoogleAppEngine Android APT 2.3 http://developer.android.com/resources/dashboard/platform-versions.html 2011 2.3.4 http://plusd.itmedia.co.jp/mobile/articles/1202/17/news097.html

More information

tkk0408nari

tkk0408nari SQLStatement Class Sql Database SQL Structured Query Language( ) ISO JIS http://www.techscore.com/tech/sql/02_02.html Database sql Perl Java SQL ( ) create table tu_data ( id integer not null, -- id aid

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

PowerPoint Presentation

PowerPoint Presentation Webデザイン特別プログラムデータベース実習編 3 MySQL 演習, phpmyadmin 静岡理工科大学総合情報学部幸谷智紀 http://na-inet.jp/ RDB の基礎の基礎 RDB(Relational DataBase) はデータを集合として扱う データの取り扱いはテーブル (= 集合 ) の演算 ( 和集合, 積集合 ) と同じ データベースには複数のテーブルを作ることができる

More information

Javaプログラムの実行手順

Javaプログラムの実行手順 戻り値のあるメソッド メソッドには 処理に使用する値を引数として渡すことができました 呼び出し 側からメソッドに値を渡すだけでなく 逆にメソッドで処理を行った結果の値を 呼び出し側で受け取ることもできます メソッドから戻してもらう値のことを もどりち戻り値といいます ( 図 5-4) 図 5-4. 戻り値を返すメソッドのイメージ 戻り値を受け取ることによって ある計算を行った結果や 処理に成功したか失

More information

Prog1_11th

Prog1_11th 2018 年 6 月 28 日 ( 木 ) 実施 ファイル操作とディレクトリ操作今回の授業では,Java 言語でのファイル操作とディレクトリ操作とについて学習する ファイル操作ファイル (File) とは, データの集合体のことで,JIS( 日本工業規格 ) では, ファイルはレコードの集合体, レコードはデータの集合体と定義されている ファイル操作は, 次の順序で行う なお, ストリームとは, 入力元または出力先を持つ,

More information

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウィジェット からボタンのアイコンをドラッグして, ワークスペースにドロップする. 図 1 ボタンの追加

More information

Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド

Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド Brekeke PBX Version 2.1 ARS プラグイン開発ガイド Brekeke Software, Inc. バージョン Brekeke PBX v2.1 ARS プラグイン開発ガイド, 2008 年 2 月 著作権本書の著作権は Brekeke Software, Inc. にあります Copyright 2003-2008 Brekeke Software, Inc. 本書の一部または全部を

More information

プロジェクト毎に名前を指定する ( ここでは AndroidTest) 動作可能な最低バージョン メインターゲットのバージョン すべて設定してクリック チェックを外す クリック

プロジェクト毎に名前を指定する ( ここでは AndroidTest) 動作可能な最低バージョン メインターゲットのバージョン すべて設定してクリック チェックを外す クリック 1. とにかく Android アプリを作ってみよう 1.1 Eclipse の起動 Android アプリの開発言語は Java です.Java プログラムの開発では統合開発環境 Eclipse が最も良く用いられており, この実習でも Eclipse を使います. この実習で用いる Eclipse は Android アプリの開発用の設定を終えたバージョンです. デスクトップ上の以下のアイコンをクリックして

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 32786~32767 2147483648~2147483647 9223372036854775808~9223372036854775807 ±10 38 ~10 38 ±10 308 ~10 308 public static void main(string[] args) { int a; double b; String s; a = 42; b = 3.1415926535; s =

More information

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String 目次 1.SqlCtl クラスリファレンス 2 (1)Connect() メソッド 2 (2)DisConnect() メソッド 3 (3)Commit() メソッド 3 (4)Rollback() メソッド 4 2.SqlStm クラスリファレンス 5 (1)Prepare() メソッド 5 (2)Execute() メソッド 6 (3)Release() メソッド 6 (4)Immediate()

More information

Android Layout SDK プログラミング マニュアル

Android Layout SDK プログラミング マニュアル プログラミングマニュアル Version 1.3.0 用 更新履歴 年月日 バージョン 履歴 2014.09.08 1.2.0.0 新規 (Layout Utilities ユーザーズ ガイド ) 2016.08.16 1.3.0.0 モバイル端末用レイアウトで直線部品と矩形部品に対応 モバイル端末用レイアウトファイルを CLFX から XML へ変更 Layout Print Engine から

More information

Prog2_10th

Prog2_10th 2016 年 12 月 8 日 ( 木 ) 実施 効果音の付加 SoundPool とは Android には音を処理するクラスが複数用意されているが, その中で SoundPool は, 予め音のデータをメモリ上に読み込んで再生するため, 長い音楽よりも短い音を扱うのに適している また,SoundPool では遅延が無いので, 効果音を付加したい場面で用いられる 授業の準備 1)Android Studio

More information

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac Actual4Test http://www.actual4test.com Actual4test - actual test exam dumps-pass for IT exams Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN

More information

Prog2_6th

Prog2_6th 2016 年 11 月 10 日 ( 木 ) 実施 インテントインテントとは Android アプリは複数のアクティビティを持つことが出来, また, アクティビティ以外の要素も持つので, 複数のアクティビティ間, アクティビティとアクティビティ以外の要素との間といったオブジェクト間を結び付ける仕組みが必要となる その役割を担うのがインテントで, 複数のアプリ間やアプリとシステムとの間もインテントで結び付けることが出来る

More information

Prog1_13th

Prog1_13th 2018 年 7 月 12 日 ( 木 ) 実施 応用プログラム (1) 統計処理 ここでは, 統計処理で最も基本的な平均値と分散とを求めるプログラムを扱う 平均値 x は データの値の合計をデータ数で割ったもので,i 番目のデータ値を xi, データ数を N とすれば, x = 1 N (x + x + + x ) = 1 N x と表される 分散 σ は平均値と個々のデータ値との差の二乗の平均値で,

More information

第1章 ビジュアルプログラミング入門

第1章 ビジュアルプログラミング入門 付録 A 既存のクラスの利用の仕方 第 7 章では フレームクラス (NewJFrame.java) とそこから呼び出されるクラス (Meibo.java など ) を同じプロジェクト内 つまり同じパッケージ内に定義しました しかし 一般には 別のパッケージ ( フォルダ ) に保管されているクラスを利用する場合があります ここでは その方法を説明します なお フォルダは Java の用語ではパッケージに対応するので

More information

GEC-Java

GEC-Java Copyright (C) Junko Shirogane, Waseda University 2019, All rights reserved. 1 プログラミング初級 (Java) 第 14 回継承 白銀純子 第 14 回の内容 継承 オーバーライド ポリモーフィズム Copyright (C) Junko Shirogane, Waseda University 2019, All rights

More information

プログラミング基礎I(再)

プログラミング基礎I(再) 山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全

More information

玉転がしタブレット端末の特徴の一つとして, センサを使った動作や, 指による画面操作がある. それらを活用して, 図形を動かすアプリの例を示す. 1. プロジェクトを作る Tama アプリケーションを作る,Tama プロジェクトを作る. 図 1 プロジェクト作成 プロジェクトの構成を設定する. 図

玉転がしタブレット端末の特徴の一つとして, センサを使った動作や, 指による画面操作がある. それらを活用して, 図形を動かすアプリの例を示す. 1. プロジェクトを作る Tama アプリケーションを作る,Tama プロジェクトを作る. 図 1 プロジェクト作成 プロジェクトの構成を設定する. 図 玉転がしタブレット端末の特徴の一つとして, センサを使った動作や, 指による画面操作がある. それらを活用して, 図形を動かすアプリの例を示す. 1. プロジェクトを作る Tama アプリケーションを作る,Tama プロジェクトを作る. 図 1 プロジェクト作成 プロジェクトの構成を設定する. 図 2 プロジェクトの構成 ランチャー アイコンを設定する. 図 3 ランチャー アイコンを設定する BlankActivity

More information

Microsoft Word - A05_AndroidプログラミングJUMP_画面800×1280

Microsoft Word - A05_AndroidプログラミングJUMP_画面800×1280 Ⅴ Android プログラミング JUMP/Page 1 Ⅴ Android プログラミング JUMP 1 Jump の標準授業時数時間 ( 月中旬まで ) 2 実習用サーバーの R:\ その他 \Java\JumpPro_init フォルダを z:\workspace へインポートしてください その方法は次のとおりです (1)Eclipse を起動して ファイル - インポート を選択してください

More information

Prog2_6th

Prog2_6th 2017 年 11 月 2 日 ( 木 ) 実施 インテントインテントとは Android アプリは複数のアクティビティを持つことが出来, また, アクティビティ以外の要素も持つので, 複数のアクティビティ間, アクティビティとアクティビティ以外の要素との間といったオブジェクト間を結び付ける仕組みが必要となる その役割を担うのがインテントで, 複数のアプリ間やアプリとシステムとの間もインテントで結び付けることが出来る

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念

More information

リファレンス,配列 例外処理

リファレンス,配列 例外処理 リファレンス, 配列, 例外処理 その他演習に役立つこと 2004 年 7 月 21 日 海谷治彦 1 リファレンス ま, 改め紹介しなくても Java 遣いなら誰でもつかってる. インスタンスをプログラム中から識別 ( 捕獲 ) するためのラベルのようなもの. C でいうところのポインタ変数に相当. Java では, あるインスタンスを参照するリファレンスが 1 つもなくなると, 勝手にインスタンスは消去される.

More information

2

2 プログラミング応用演習 b 10 月 5 日演習課題 2016/10/05 PAb 演習課題 プログラム仕様書作成課題 課題クラスを読み 次に示すクラスの仕様書を完成させよ なお 仕様書は クラス 1 つに付き 1 つ作成す る 加えて 図 1 のようなクラス継承の模式図を作成せよ < クラス名 のプログラム仕様書 > 作成者 : 学籍番号 名前 (1) クラスクラス名 : クラス名 説明 : クラスが何を表現しているか

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double

More information

Prog2_9th

Prog2_9th 2017 年 11 月 30 日 ( 木 ) 実施 Canvas による描画 Canvas とは Canvas は, 描画コールを保持するためのクラスである 描画には, 次の 4 つの要素が必要である (1) ビットマップピクセル ( 画素 ) を保持 (2) キャンバス描画コール ( ビットマップへの書き出し要請 ) に対応 (3) 描画プリミティブ描画領域, パス, テキスト, ビットマップ等

More information

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i Java GUI 3 Java GUI 3 - サンプルプログラム (1) - 2011-09-25 Version 1.00 K. Yanai 目 次 Java GUI 3 1 概要...1 2 クラス構成...2 3 ソースコード例...3 4 課題...7 i 1 概要まずは簡単なサンプルプログラムをみながら Java GUI の基本的なことを学びましょう 本サンプルは 図に示すようなひとつのメイン画面を使用します

More information

PowerPoint Presentation

PowerPoint Presentation 上級プログラミング 2( 第 5 回 ) 工学部情報工学科 木村昌臣 今日のテーマ データベース入門 データベースシステムの用意の仕方 データベースを作ってみる データベースを使ってみる データベースプログラミング JDBCを使った検索プログラム JDBCを使った更新プログラム データベース入門 今回の説明は Windows 環境を前提としているため Linux など他のプラットフォーム上で作業を行う場合は

More information

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編 手順 4 Excel データを活用する ( リスト / グラフ 色分け ) 外部の表データ (CSV 形式 ) を読み込み リスト表示やカード表示 その値によって簡単なグラフ ( 円 正方形 棒の 3 種類 ) や色分け表示することができます この機能を使って地図太郎の属性情報に無い項目も Excel で作成し CSV 形式で保存することにより 自由に作成することができます (Excel でデータを保存するとき

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None クイック検索検索 目次 Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 None 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

Microsoft Word - tutorial3-dbreverse.docx

Microsoft Word - tutorial3-dbreverse.docx 株式会社チェンジビジョン使用バージョン :astah* 6.0, 6.1 [ ] サンプル サポート対象外 目次 DB リバースを使ってみよう ( サンプル サポート対象外 ) 2 ご利用の前に 2 予備知識 2 データベースの環境設定をしてみよう 2 astah* データベースリバースコンポーネントを使用してみよう 5 作成した asta ファイルを astah* professional で開いてみよう

More information

Microsoft Word - NonGenList.doc

Microsoft Word - NonGenList.doc ジェネリクスとコンパレータを使用しないリストのプログラム例 1. ポインタによる線形リスト LinkedListNG.java: ポインタによる線形リストのクラス LinkedListNG LinkedListTesterNG.java: LinkedListNG を利用するプログラム例 2. カーソルによる線形リスト AryLinkedListNG.java: カーソルによる線形リストのクラス AryLinkedListNG

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 10 回目への出力 ストリーム ストリームとは入力または出力の流れをもつデータの連鎖ですストリームは異なる機器からのデータを統一的に扱う考え方です 文字ストリーム 文字ベースの入出力をサポートします - Unicode(Java 内部 ) とローカルコード (Java 外部 ) の変換が行われ プログラマはその違いを意識しなくてすみます バイトストリームバイナリデータの入出力をサポートします

More information

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt プログラミング言語 3 第 09 回 (2007 年 11 月 26 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/40 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 11 月 27 日分と書いてある部分が 本日の教材です

More information

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt プログラミング言語 3 第 09 回 (2007 年 11 月 26 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/40 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 11 月 27 日分と書いてある部分が 本日の教材です

More information

Microsoft Word - Android_DI講座_画面800×1280

Microsoft Word - Android_DI講座_画面800×1280 Page 4 3 画面にウィジェットを表示する Android のアプリ開発では通常 XML ファイルと Java ファイルの両方を作ります 画面内の GUI 部品などの配置 ( レイアウト ) は XML ファイルを記述し これらの部品を用いるロジックを Java ソースで書きます この単元では この方法で説明していきます なお ゲームアプリではレイアウトもロジックも Java ソースで書く場合がありますが

More information

Prog2_5th

Prog2_5th 2017 年 10 月 26 日 ( 木 ) 実施 レイアウトレイアウトの位置付け Android アプリで用いられる様々なレイアウト (Layout) は, それぞれ ViewGroup クラスを継承するクラスとして定義されているものであり,ViewGroup クラスは Viewクラスを継承するクラスである Viewクラスはユーザインタフェイスを構成する基本要素を表す ビュー (View) は画面上に長方形の領域を占め,

More information

Prog2_12th

Prog2_12th 2018 年 12 月 13 日 ( 木 ) 実施クラスの継承オブジェクト指向プログラミングの基本的な属性として, 親クラスのメンバを再利用, 拡張, または変更する子クラスを定義することが出来る メンバの再利用を継承と呼び, 継承元となるクラスを基底クラスと呼ぶ また, 基底クラスのメンバを継承するクラスを, 派生クラスと呼ぶ なお, メンバの中でコンストラクタは継承されない C# 言語では,Java

More information

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid(text_box02_id); if (001 == statee 全体のヒント 1. テキストボックスの制御 1.1. 日付入力日付の入力ボックスは フォーカスが入った時にスラッショを消し フォーカスが他の項目等に移るとスラッシュが加わるようにする オンフォーカス 20100101 オフフォーカス 2010/01/01 1.1.1 オンフォーカス時にスラッシュを消す入力項目のスラッシュを消すには include/function.js ファイル内の var delslash

More information

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲 Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲を決定します 次の型が利用でき これらの型は特に基本型とよばれます 基本型 値の種類 値の範囲 boolean

More information

スライド 1

スライド 1 WindowsForm サンプル解説 S2Container.NET, S2Dao.NET コミッタ 藤井宏明 1 S2Container.NET の Examples フォルダに付属する WindowsSample の解説です 概要 アプリケーション アーキテクチャー ソリューション構成 プロジェクト概要 サンプル説明 2 Ⅰ. アプリケーション アーキテクチャー 3 アプリケーション アーキテクチャー

More information

About me! 足立昌彦 / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert (Android)

About me! 足立昌彦 / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert (Android) Discover Support Library Masahiko Adachi @adamrokcer / +Masahiko.Adachi 28 th Sep, 2013 About me! 足立昌彦 ( @adamrocker / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert

More information

Prog1_6th

Prog1_6th 2019 年 10 月 31 日 ( 木 ) 実施配列同種のデータ型を有する複数のデータ ( 要素 ) を番号付けして, ひとまとまりの対象として扱うものを配列と呼ぶ 要素 point[0] point[1] point[2] point[3] point[4] 配列 配列の取り扱いに関して, 次のような特徴がある 1. プログラム中で用いる配列変数 ( 配列の本体を参照する参照型の変数 ) は必ず宣言しておく

More information

PowerPoint Presentation

PowerPoint Presentation ソフトウェア演習 B GUI を持つ Java プログラムの 設計と実装 4.1 例題 :GUI を持った電卓を作ろう プロジェクトCalculator パッケージ名 :example ソースファイル : Calculator.java GUI.java EventProcessor.java 2 4.2 GUI とイベント処理 GUI の構成 :Swing GUI の場合 フレーム JFrame:

More information

Prog2_5th

Prog2_5th 2014 年 10 月 23 日 ( 木 ) 実施 サービスサービスとは Android アプリの動作環境は, スマートフォンの様に電話が掛かってきた場合の対応等も考慮しなければならないが, アクティビティはこの様な場合には, 処理を中断してしまう こういう場合にもバックグラウンドで動作し続けるのがサービスである サービスはインテントで起動することも可能であるが, バインドという仕組みを用いてサービスが提供するインターフェイスとアクティビティとを結び付けて起動しないと,

More information

Microsoft PowerPoint - グリッド協議会GT4演習資料_2007_配布用

Microsoft PowerPoint - グリッド協議会GT4演習資料_2007_配布用 演習 1~6 Globus Toolkit Version 4 (Java WS Core) 演習 : WS-Resource の生成と機能拡張 目標 :GT4 Java Core WSRF 基本仕様のサポート確認 サーバー側の実装方法 サービス 各種設定ファイル ( の実装方法 ) 最低限 WSRF の標準的な機能は GT4 に含まれる標準で利用可能 GT4 標準の利用方法 wsrf-get-property

More information

import android.database.sqlite.sqlitedatabase.cursorfactory; public class DatabaseHelper extends SQLiteOpenHelper { /* データベース名 */ private final static

import android.database.sqlite.sqlitedatabase.cursorfactory; public class DatabaseHelper extends SQLiteOpenHelper { /* データベース名 */ private final static Android データベース処理の便利 ( ヘルパー ) クラスの利用 SQLiteOpenHelper クラス 必ずしもこのヘルパークラスは利用する必要はないのですが 利用すると以下のような利 点があります このクラスを使うと発生する3つの利点 ) 1 指定したデータベースファイルが存在していないときは自動的にファイル生成を行う事ができる 2 DB オープン時 もしテーブルが存在していないときは自動的にテーブル生成を行う事ができる

More information

JAVA入門

JAVA入門 JAVA 入門後期 10 情報処理試験例題解説 H14 年度秋問 8 次の Java プログラムの説明及びプログラムを読んで, 設問に答えよ プログラムの説明 ディジタル論理回路シミュレータを作成するためのクラスとテスト用クラスである (1) ゲートを表す抽象クラス Gate のサブクラスとして, NOT ゲートを表すクラス NotGate 及び AND ゲートを表すクラス AndGate を定義する

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念

More information

JAVA とテンプレート

JAVA とテンプレート JAVA とテンプレート 序論 : コンテナ 他のクラスのオブジェクトを保存するものをコンテナ (Container) と呼ぶ 集合 リスト 表 コンテナに求められる機能 追加 削除 参照 要素の比較 並べ替え 要素のクラスが不明では 比較できない 要素が想定しているクラスのものかの判定 テンプレート以前の対応方法 コンテナ設計時に 保存されるクラスを特定してコンテナをコードする 保存されるクラスごとに作成しなければならない

More information

メソッドのまとめ

メソッドのまとめ メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか

More information

Android PC OS Linux Android AndroidJava XML Android ipone ipad ipone VS Android ipone OS ios Objective-C Android Java Objective-C Java Java Android An

Android PC OS Linux Android AndroidJava XML Android ipone ipad ipone VS Android ipone OS ios Objective-C Android Java Objective-C Java Java Android An Android 2.x / 4.x A n d r o i d B i b l e 1,000 Android PC OS Linux Android AndroidJava XML Android ipone ipad ipone VS Android ipone OS ios Objective-C Android Java Objective-C Java Java Android Android

More information

Microsoft PowerPoint - OOP.pptx

Microsoft PowerPoint - OOP.pptx 第 12 回 第 10 章ファイルの入出力処理 24 4 入出力ストリームクラス 245 ファイルの書き出し (1) ファイルのオープン処理 FileWriter fw=new FileWriter(args[0]); 文字列 args[0] で指定された名前のファイルを作成する.FileWriter というストリームクラスのオブジェクトによりファイルがオープンされる. このオブジェクトは変数 fw

More information

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1 Java (9) 1 Lesson 7 2008-05-20 Java System.out.println() 1 Java API 1 Java Java 1 GUI 2 Java 3 1.1 5 3 1.0 10.0, 1.0, 0.5 5.0, 3.0, 0.3 4.0, 1.0, 0.6 1 2 4 3, ( 2 3 2 1.2 Java (stream) 4 1 a 5 (End of

More information

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft PowerPoint - chap10_OOP.ppt プログラミング講義 Chapter 10: オブジェクト指向プログラミング (Object-Oriented Programming=OOP) の入り口の入り口の入り口 秋山英三 F1027 1 例 : 部屋のデータを扱う // Test.java の内容 public class Test { public static void main(string[] args) { double length1,

More information

Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説

Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説 Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

Another Activity オブジェクトは生成されてもいないのである これは 後述の onpause メソッ ドの説明からも明らかである 翻訳 : A の onpause から返ってこない限り B は create されない ため ここで長い処理は行ってはならない 実際にトレースをおこなってみ

Another Activity オブジェクトは生成されてもいないのである これは 後述の onpause メソッ ドの説明からも明らかである 翻訳 : A の onpause から返ってこない限り B は create されない ため ここで長い処理は行ってはならない 実際にトレースをおこなってみ Activity のライフサイクルに関する間違い onpause の前の Another Activity comes in front of the activity という部分は間違い あるいは間違いで無いとしても非常に紛らわしい onpause が呼び出される以前には 1 Another Activity オブジェクトは生成されてもいないのである これは 後述の onpause メソッ ドの説明からも明らかである

More information

データアダプタ概要

データアダプタ概要 データベース TableAdapter クエリを実行する方法 TableAdapter クエリは アプリケーションがデータベースに対して実行出来る SQL ステートメントやストアドプロシージャで TableAdapter で型指定されたメソッドと仕て公開される TableAdapter クエリは 所有るオブジェクトのメソッドと同様に 関連付けられたメソッドを呼び出す事に依り実行出来る TableAdapter

More information

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint - prog03.ppt プログラミング言語 3 第 03 回 (2007 年 10 月 08 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/33 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 10 月 08 日分と書いてある部分が 本日の教材です

More information