第 4 章 インテント 55
6.4 プリファレンス
6.4.6 プリファレンスを利用するアプリケーションの例
それでは、プリファレンスファイルに対するデータの読み込みと書き込みを実行するアプリ ケーションを作ってみましょう。
まず最初に、次のようなプロジェクトを作成してください。
Project name preference Application name プリファレンス
Package name org.example.preference Create Activity PreferenceActivity
次に、main.xmlを次のように書き換えてください。
レイアウトXMLの例 main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
>
<TableRow>
<TextView android:text="キー"/>
<EditText android:id="@+id/putkey"/>
</TableRow>
<TableRow>
<TextView android:text="値"/>
<EditText android:id="@+id/putvalue"/>
</TableRow>
</TableLayout>
<Button android:id="@+id/put"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="書き込み"
/>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
>
<TableRow>
<TextView android:text="キー"/>
<EditText android:id="@+id/getkey"/>
</TableRow>
</TableLayout>
<Button android:id="@+id/get"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="読み込み"
/>
<TextView android:id="@+id/getvalue"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
次に、PreferenceActivity.javaを次のように書き換えてください。
プログラムの例 PreferenceActivity.java package org.example.preference;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Button;
import android.widget.TextView;
import android.content.SharedPreferences;
public class PreferenceActivity extends Activity { public static final String FILENAME = "preference";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button put = (Button) findViewById(R.id.put);
put.setOnClickListener(new OnClickListener() { public void onClick(View v) {
put();
} });
final Button get = (Button) findViewById(R.id.get);
get.setOnClickListener(new OnClickListener() { public void onClick(View v) {
get();
} });
}
private void put() {
final EditText putkey =
(EditText) findViewById(R.id.putkey);
final EditText putvalue =
(EditText) findViewById(R.id.putvalue);
String key = putkey.getText().toString();
String value = putvalue.getText().toString();
SharedPreferences sp = getSharedPreferences(
FILENAME, MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString(key, value);
editor.commit();
putkey.setText("");
putvalue.setText("");
参考文献 93 }
private void get() {
final EditText getkey =
(EditText) findViewById(R.id.getkey);
final TextView getvalue =
(TextView) findViewById(R.id.getvalue);
String key = getkey.getText().toString();
SharedPreferences sp = getSharedPreferences(
FILENAME, MODE_PRIVATE);
getvalue.setText("値: " + sp.getString(key, "undefined"));
} }
これで完成です。実行すると、三つのエディットテキストと二つのボタンが表示されるはず です。
1番目のエディットテキストにキー、2番目のエディットテキストに値を入力して、「書き込み」
ボタンをクリックすると、そのキーと値の組がプリファレンスファイルに書き込まれます。
また、3番目のエディットテキストにキーを入力して、「読み込み」ボタンをクリックすると、
そのキーを持つ組の値が、ボタンの下に表示されます。
参考文献
[Ableson,2009] Frank Ableson, Charlie Collins and Robi Sen, Unlocking Android: A Devel-oper’s Guide, Manning, 2009, ISBN 978-1-933988-67-2.
[Burnette,2008] Ed Burnette,Hello, Android: Introducing Google’s Mobile Development Plat-form, Pragmatic Bookshelf, 2008, ISBN 978-1-934356-17-3. 邦訳(長尾高弘)、『初めての Android』、オライリー・ジャパン、2009、ISBN 978-4-87311-409-5。
[DiMarzio,2008] Jerome DiMarzio,Android: A Programmer’s Guide, McGraw-Hill, 2008, ISBN 978-0-07-159988-7. 邦訳(土肥拓生)、『初めてのGoogle Androidプログラミング:サンプル で学ぶ必須作法と基本手順』、日経BP社、2009、ISBN 978-4-8222-8371-1。
[Meier,2009] Reto Meier, Professional Android Application Development, Wiley Publishing, 2009, ISBN 978-0-470-34471-2.
[Murphy,2009] Mark L. Murphy,The Busy Coder’s Guide to Android Development, Common-sWare, 2009, ISBN 978-0-9816780-0-9.
[Rogers,2009] Rick Rogers, John Lombardo, Zigurd Mednieks and Blake Meike,Android Ap-plication Development: Programming with the Google SDK, O’Reilly, 2009, ISBN 978-0-596-52147-9.
[木南,2008] 木南英夫、「Google Androidアプリ開発入門」、『組込みプレス』、Vol. 12、技術評 論社、2008、ISBN 978-4-7741-3571-7。
[木南,2009] 木南英夫、『Google Androidアプリケーション開発入門:画面作成からデバイス制 御まで 基本機能の全容』、日経BP社、2009、ISBN 978-4-8222-8390-2。
[江川,2008] 江川崇、竹端進、山田暁通、麻野耕一、山岡敏夫、藤井大助、窪田康大、藤田泰介、
佐野徹郎、『Google Android完全解説』、アスキー、2008、ISBN 978-4-7561-5130-8。
[江川,2009] 江川崇、藤井大助、麻野耕一、藤田泰介、山田暁通、山岡敏夫、佐野徹郎、竹端進、
『Google Androidプログラミング入門』、アスキー、2009、ISBN 978-4-04-867956-5。 [柴田,2009] 柴田文彦、藤枝崇史、伊原頌二、『入門Google Androidプログラミング』、インプ
レスジャパン、2009、ISBN 978-4-8443-2771-4。
[嶋,2008] 嶋是一、『Google Android入門:携帯電話開発の新技術』、技術評論社、2008、ISBN 978-4-7741-3462-8。
[嶋,2009] 嶋是一、中村秀樹、江川崇、杉本礼彦、安生真、内嶋教人、今村謙之、山崎淳、木南
英夫、安藤恐竜、「Androidアプリ開発「匠」への道」、『Software Design』、2009年3月号、
技術評論社、2009。
[布留川,2009] 布留川英一、『Android 1.5プログラミングバイブル』、ソシム、2009、ISBN 978-4-88337-663-6。
[柳井,2009] 柳井政和、『Google Androidアプリ開発ガイド』、秀和システム、2009、ISBN 978-4-7980-2300-7。
[若林,2009] 若林登、『はじめてのAndroidプログラミング』、工学社、2009、ISBN 978-4-7775-1435-9。
95
索引
.apk(拡張子), 9 .apkファイル, 9 .class(拡張子), 8 .classファイル, 8, 9 .dex(拡張子), 8 .dexファイル, 8, 9 3次ベジェ曲線, 74 AbsoluteLayout要素, 44 ACTION_DOWN, 80
ACTION_MOVE, 80 ACTION_UP, 80 Activity, 15, 84 activity要素, 56 add, 36, 52 ADT, 9
AlertDialog.Builder, 46 Android, 8
Android SDK, 9
android:background属性, 22 android:gravity属性, 28 android:id属性, 25
android:layout_height属性, 17, 42, 43 android:layout_width属性, 17, 42, 43 android:layout_x属性, 44
android:layout_y属性, 44 android:maxLength属性, 28 android:numeric属性, 28
android:orientation属性, 33, 42 android:scrollbars属性, 28 android:singleLine属性, 28 android:src属性, 54
android:stretchColumns属性, 44 android:text属性, 17
android:textColor属性, 22 android:textSize属性, 23 android:typeface属性, 17 AndroidManifest.xml, 16 Androidアプリケーション
のインストール, 14 の削除, 14
Androidアプリケーション, 8 Androidエミュレーター, 9, 14
のシェル, 14 Androidバイトコード, 8 Androidパッケージファイル, 9 Androidマニフェスト, 16, 56 application要素, 56
argb, 67
ArrayAdapter, 36 AVD, 10
BaseAdapter, 36 BitmapDrawable, 78 BLACK(色), 67 BLUE(色), 67 BMP, 54
BOLD(書体のスタイル), 76
BOLD_ITALIC(書体のスタイル), 76 Bornstein, Dan, 8
BREW, 8
BroadcastReceiver, 15 Bundle, 58
Button要素, 26 Canvas, 68 check, 34
CheckBox要素, 31 ClassCastException, 91 close, 74
Color, 67
color(リソースのタイプ), 19 color要素, 21
commit, 91
ContentProvider, 16 Context, 67, 84, 86, 88 create, 75
cubicTo, 74 CYAN(色), 67 d, 13
Dalvik VM, 8
Dalvik実行可能形式ファイル, 8, 9 decimal(エディットテキスト), 28 DEFAULT(書体), 75
Dialog, 46
DialogInterface.OnClickListener, 48 dimen(リソースのタイプ), 19
dimen要素, 23 DKGRAY(色), 67 dp(大きさの単位), 23 draw, 79
drawCircle, 69, 71 drawLine, 71 drawOval, 71, 72
drawPath, 73 drawRect, 71, 72 drawRoundRect, 71, 72 drawText, 75
drawTextOnPath, 77 Eclipse, 9
の使い方, 10 Eclipse Foundation, 9 edit, 90
EditText要素, 28 FileInputStream, 86 fileList, 88
FileOutputStream, 84 FILL, 71
FILL_AND_STROKE, 71 fill_parent(大きさ), 42
fill_parent(ウィジェットの大きさ), 17 findViewById, 25, 27
finish, 61 getAction, 80 getAdapter, 37 getBoolean, 59, 91 getBooleanArray, 59
getCheckedRadioButtonId, 34 getColor, 67
getDrawable, 78 getExtras, 59 getFloat, 91 getGroupId, 53 getHeight, 70 getInt, 59, 91 getIntArray, 59 getIntent, 58 getItem, 37 getItemId, 53 getLong, 91
getResources, 67, 78 getSharedPreferences, 90 getString, 59, 91
getStringArray, 59 getText, 28
getTitle, 53 getWidth, 70 getX, 80 getY, 80 GIF, 54 Google, 8, 9
GRAY(色), 67 GREEN(色), 67
horizontal(ラジオボタンの方向), 33 horizontal(リニアレイアウトの方向), 42 ID
ウィジェットの , 25
選択されたラジオボタンの , 34 IDE, 9
ImageView要素, 54 in(大きさの単位), 23 Intent, 55
invalidate, 80 isChecked, 31
ITALIC(書体のスタイル), 76 Java, 8
Java VM, 8 javac, 8 JDK, 9 JPEG, 16, 54
KEYCODE_0(キーコード), 82 KEYCODE_A(キーコード), 82
KEYCODE_DPAD_DOWN(キーコード), 82 KEYCODE_DPAD_CENTER(キーコード), 82 KEYCODE_DPAD_LEFT(キーコード), 82 KEYCODE_DPAD_RIGHT(キーコード), 82 KEYCODE_DPAD_UP(キーコード), 82 KEYCODE_ENTER(キーコード), 82 KEYCODE_SPACE(キーコード), 82 KeyEvent, 82
LENGTH_LONG, 45 LENGTH_SHORT, 45 LinearLayout要素, 42 lineTo, 73
Linux, 8 ListView, 36 Log, 13 LogCat, 14 LTGRAY(色), 67 MacOS, 8
MAGENTA(色), 67 makeText, 45 map要素, 90 Menu, 52 MenuItem, 52
mm(大きさの単位), 23
索引 97 MODE_PRIVATE(ファイル作成モード), 84,
90
MONOSPACE(書体), 75 monospace(フォント), 18 MotionEvent, 80
moveTo, 73
name属性, 19, 21, 23
NORMAL(書体のスタイル), 76 onActivityResult, 62
onClick, 26, 48, 50 OnClickListener, 26 onCreateOptionsMenu, 52 onDraw, 68, 80
onItemClick, 37
OnItemClickListener, 37 onItemSelected, 40
OnItemSelectedListener, 40 onKeyDown, 82
onKeyUp, 82
onNothingSelected, 40 onOptionsItemSelected, 52 onTouchEvent, 80
openFileInput, 86 openFileOutput, 84 Paint, 69
Paint.Style, 71 parseColor, 67 Path, 73 PNG, 16, 54
pt(大きさの単位), 23 putBoolean, 90
putExtra, 58, 62 putFloat, 90 putInt, 90 putLong, 90 putString, 90
px(大きさの単位), 23 R.java, 16, 21
RadioButton要素, 33 RadioGroup要素, 33 rCubicTo, 74 RectF, 72 RED(色), 67
resources要素, 19, 21, 23 RESULT_CANCELED, 62 RESULT_OK, 62
rgb, 67 rLineTo, 73 rMoveTo, 73
sans(フォント), 18 SANS_SERIF(書体), 75 SERIF(書体), 75 serif(フォント), 18 Service, 16
setAdapter, 36
setBackgroundColor, 67 setBounds, 78
setColor, 69 setContentView, 67
setDropDownViewResource, 39 setFocusable, 82
setFocusableInTouchMode, 82 setItems, 50
setMessage, 47
setNegativeButton, 47 setNeutralButton, 47 setOnClickListener, 27 setPositiveButton, 47 setResult, 62
setSelection, 40 setShortcut, 52 setStrokeWidth, 71 setStyle, 71 setText, 20, 26, 28 setTextSize, 75 setTitle, 47 setTypeface, 75 SharedPreferences, 90
SharedPreferences.Editor, 90 show, 45, 47
simple_list_item_1, 36
simple_spinner_dropdown_item, 39 simple_spinner_item, 39
sp(大きさの単位), 23 Spinner, 39
startActivityForResult, 55 string(リソースのタイプ), 19 string要素, 19, 90
STROKE, 71
Sun Microsystems, 9 Symbian, 8
TableLayout要素, 43 TableRow要素, 43
TextView, 26
TextView要素, 22, 23 Toast, 45
top(エディットテキスト), 28 toString, 29, 36, 39
TRANSPARENT(色), 67 Typeface, 75
vertical(エディットテキスト), 28 vertical(ラジオボタンの方向), 33 vertical(リニアレイアウトの方向), 42 View, 25, 66, 80, 82
WHITE(色), 67 Windows, 8
Windows bitmap, 54 Windows Mobile, 8
wrap_content(大きさ), 42
wrap_content(ウィジェットの大きさ), 17 XML文書, 16
x軸, 69
YELLOW(色), 67 y軸, 69
アクション, 80 の識別, 80 アクティビティー, 11, 15
の結果, 61 の終了, 61 値
拡張データの , 58 アダプター, 36, 39
スピナーのための , 39 リストビューのための , 36 アプリケーション
の実行, 11 アプリケーション名, 10 アラートダイアログ, 46
リストを持つ , 50 アルファ値, 22, 67 イタリック, 75, 76 位置
の取得, 80
ビットマップ画像の , 78 移動
カレントポイントの , 73 イベント, 26
イベントリスナー, 26 の設定, 27 の作り方, 26 スピナーの , 40
ダイアログの , 48 リストビューの , 37 イメージビュー, 54
色, 16, 22, 69 の記述, 21
のリソースファイル, 21 をあらわす整数, 67 を設定する属性, 22 インストール
Androidアプリケーションの , 14
インチ, 23
インテント, 55, 62 の取得, 58 ウィジェット, 12, 17
のID, 25
の大きさを設定する属性, 17 のクラス名, 25
の取得, 25 の作り方, 17 の名前, 25
エディターオブジェクト, 90 エディットテキスト, 17, 28 円, 71
大きさ, 16, 24 の記述, 23 の単位, 23
のリソースファイル, 23
ウィジェットの を設定する属性, 17 ビットマップ画像の , 78
ビューの , 70
文字の を設定する属性, 23 レイアウトの , 42
解像度, 23 書き込み
ファイルへの , 84 拡張データ, 58
の値, 58 の値の取得, 59 のキー, 58 の登録, 58 の取得, 58 カスケード
メソッド呼び出しの , 47 画素, 23
画像, 16 仮想マシン, 8 角
の丸い長方形, 71 画面, 15
カレントポイント, 73 の移動, 73
索引 99 キー, 82
拡張データの , 58 キーコード, 82
記述
色の , 21 大きさの , 23
リソースを参照する , 19 キャンバス, 68, 69
行, 43 強制的な
再描画, 80 曲線
の追加, 74 クラス名
ウィジェットの , 25 クラスライブラリ, 9
グラフィックス の描画, 68 形状
を閉じる, 74
を描画するメソッド, 71 結果
の設定, 61
アクティビティーの , 61 結果コード, 62
原点, 69 肯定ボタン, 47 項目
メニューの の追加, 52 コンテントプロバイダー, 15, 16 コンパイラ, 8, 9
サービス, 15 再描画
強制的な , 80 削除
Androidアプリケーションの , 14
作成
プロジェクトの , 10 座標系, 69
サンセリフ, 75 シェル
Androidエミュレーターの , 14 式
リソースを参照する , 20 識別
アクションの , 80 実行
アプリケーションの , 11 シャープ, 21
終了
アクティビティーの , 61
出力ストリーム, 84 取得
位置の , 80 インテントの , 58 ウィジェットの , 25 拡張データの値の , 59 拡張データのマップの , 58 ビットマップ画像の , 78 ショートカットキー
の設定, 52 初期設定
ラジオグループの , 34 書体, 75
のスタイル, 75 スタイル, 69
書体の , 75 描画の , 71 スピナー, 39
のイベントリスナー, 40 のためのアダプター, 39 整数
色をあらわす , 67 絶対座標, 73
絶対レイアウト, 42, 44 設定
イベントリスナーの , 27 結果の , 61
ショートカットキーの , 52 デフォルトの項目の , 40 ビューの , 67
セリフ, 75 線, 71
の幅, 71 選択されたラジオボタン
のID, 34 相対座標, 73 ソース
の編集, 12 属性
色を設定する , 22
ウィジェットの大きさを設定する , 17
フォントを設定する , 17 文字の大きさを設定する , 23 文字列を設定する , 17 ダイアログ, 46
のイベントリスナー, 48 楕円, 71
タグ, 13 タッチ, 80 単位
大きさの , 23
チェック
の判定, 31 チェックボックス, 17, 31 中立ボタン, 47
長方形, 71
角の丸い , 71 直線, 71
の追加, 73 追加
曲線の , 74 直線の , 73
メニューの項目の , 52 使い方
Eclipseの , 10 作り方
イベントリスナーの , 26 ウィジェットの , 17 ビューの , 66 レイアウトの , 42 ディレクトリ, 10
テーブルレイアウト, 42, 43 テキスト
の描画, 75 パスに沿った , 77 テキストエディター, 9 テキストビュー, 12, 17 デバッガー, 9
デフォルト
の項目の設定, 40 統合開発環境, 9
登録
拡張データの , 58 トースト, 15, 45
閉じる
形状を , 74 ドロップダウンリスト, 39 名前
ウィジェットの , 25 入力ストリーム, 86
塗りつぶし, 71 背景色
ビューの , 67 バイトコード, 8 倍率非依存ピクセル, 23 パス, 73
に沿ったテキスト, 77 パッケージエクスプローラー, 11 パッケージ名, 10
幅
線の , 71 判定
チェックの , 31 ピクセル, 23, 69
ビットマップ画像, 54, 78 の位置と大きさ, 78 の取得, 78
の描画, 79
リソースとしての , 54 否定ボタン, 47
ビュー, 66, 80 の大きさ, 70 の設定, 67 の作り方, 66 の背景色, 67 描画
のスタイル, 71 グラフィックスの , 68 形状を するメソッド, 71 テキストの , 75
ビットマップ画像の , 79 ファイル, 10
からの読み込み, 86 への書き込み, 84 ファイル作成モード, 84, 90 ファイル名
のリスト, 88 フォーカス, 82 フォルダ, 10 フォント
を設定する属性, 17 不透明度, 67
太字, 75, 76 プラグイン, 9 プラットフォーム, 8 プリファレンス, 90
プリファレンスオブジェクト, 90 プリファレンスファイル, 90 ブロードキャストレシーバー, 15 プロジェクト, 10
の作成, 10 プロジェクト名, 10 ペイント, 69 編集
ソースの , 12 ポイント, 23
ボタン, 17, 26
密度非依存ピクセル, 23 ミリメートル, 23 メソッド