Androidでテキストエディタ その3
少々間が空いてしまいました。
今回はユーザーが書き込んだデータをSQLiteに保存できるようにします。
まずはボタンの作成から。
保存ボタンを作る
まずは画面上部に表示しているActionBarに、保存ボタンを追加します。
ボタンに使用するアイコンですが、公式で公開しているものを使用します。
Action Bar Icons>holo_dark>05_content_save を開くと、何やらフォルダがたくさんあります。
これは画面の解像度に合わせて切り替えるための画像で、(プロジェクト名)>app>src>resにある同じ名前のフォルダにそれぞれ追加します。
完了したら、(プロジェクト名)>app>src>res>menuにある、保存ボタンを追加したいActivityの名前のついたXMLファイルを開きます。
edit_view.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.notenotenote.app.EditViewActivity" >
<item android:id="@+id/action_save"
android:title="@string/action_save"
android:icon="@drawable/ic_action_save"
android:showAsAction="always" />
</menu>
menuタグの中に、itemタグを加えることでActionBarにボタンが表示されます。
- android:titleは特にActionBarには表示されないものの、削除するとエラーになります。
- android:iconではアイコン画像のファイル名を拡張子無しで書いておけば、あとは自動で最適な画像を表示してくれるようです。便利。
- android:showAsActionは該当のアイコンを表示する条件を指定します。今回は常に表示したいのでalwaysで。
[参考]
ボタン押下のイベントを取得する
ボタンが押されたら認識できるようにします。
EditViewActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.action_share:
this.shareNote();
return true;
case R.id.action_save:
this.saveNote();
return true;
}
return false;
}
前回の通り、ActivityをBlank Activityとして作成していると、自動でonOptionsItemSelectedが作成されていると思います(全く空の状態からも作成できるようになりたいところですが)。
ボタンを押すとこのメソッドが呼ばれ、引数のMenuItemのgetItemId()でID(edit_view.xmlで指定したもの)を取得して処理を切り分けます。