スポンサー広告 - スポンサーサイト

--/--/-- (--) --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Android】簡単メモ帳 - アプリのメニューが表示されない機種について

2016/05/23 (月) 23:56

ユーザーさんからの問い合わせがあったのですが、返信したメールがエラーで反ってきてしまったのでこちらに記載します。

■問い合わせ内容
Galaxy S7 edgeに機種変をし、再設定をしているのですが、これまで一番下にあった△□○のボタンの隣の三点ボタンが無くなったため、バックアップ並びにリストアが出来ません。
又、週の開始日も月曜にするか日曜にするかも設定できません。
どのようにしたらよろしいでしょうか?

■回答
実機での確認ができていないので、ネットで調べた結果をお伝えします。
下記2通りを試してみてください。

1.バックキー長押し
アプリによってはこれでメニューが表示されるらしいですが、100%ではないようです。

2.タッチパッド
システム設定→ユーザー補助→操作と制御→アシスタントメニュー→on で丸い水色で中に四角×④のタッチパッドが現れ常駐します。
メニュー操作したいアプリを起動→タッチパッドが手前に来るので、それをタップ→他のオプション(縦にドット×③のメニューマーク)を探してタップ。
これでメニュー操作出来るらしいです。
スポンサーサイト

【Android】簡単メモ帳 - バージョン 1.1.5

2014/07/09 (水) 15:39

バージョンアップ

■変更点
1.カレンダー画面について、ロケールが日本、又は日本語の場合、祝日の日付が赤くなるようにしました。

■詳細
メールで要望をいただいたので、対応してみました。
が、色が赤くなるだけで何の日かは表示されません。表示する場所がねぇです(汗
本アプリは一応多言語対応していますが、祝日の対応は日本のみです。
祝日の計算は「Java祝日計算」を利用させてもらいました。
法律の改正で祝日が増えたりしたら、差し替えが必要になります。
きっと「空の日」とかできるんじゃないですかねぇ。

以前のリリースで開発していたPCが故障し、新調した後の作業でした。
開発環境を構築しなおしたり、そっちのほうが大変でした。

【Android】簡単メモ帳 - データ移行について

2013/12/08 (日) 23:08

メールで何件か問い合わせがあったのですが、携帯のキャリアメールからのが多く、返信してもエラーで帰ってきてしまうケースが多々あります。
そこで、1番問い合わせの多いメモデータの移行方法を解説したいと思います。

簡単メモ帳のバージョン「1.1.4」以降にて、メモ情報のバックアップ・リストア機能を追加しています。
バックアップの際、出力先は任意のディレクトリを指定することができます。
バックアップ実行後、バックアップデータを移行先の端末に転送し、リストア機能を実行します。

※SDカードにバックアップする場合は、出力先にSDカードをのパスを指定します。
 パスはキャリア・端末によって多少異なるようです。正確なパスは取扱説明書などを確認してください。

※バックアップされるデータはCSV形式ではなく、SQLiteのDB形式のファイルとなります。
 テキストエディタやエクセルで開いて見ることはできません。
 SQLiteのDB形式のファイルを見るためにはそれに対応したツールが必要となるので、別途用意してください。

※端末間のデータのやり取りには、ファイル共有アプリを利用するのが簡単です。
 以下は有名どころの紹介です。
 ・Evernote
 ・Google ドライブ
 ・Dropbox

端末間のデータ移行については、方法が多数存在します。
環境に適した方法をご利用ください。

【Android】簡単メモ帳 - バージョン 1.1.4

2013/03/17 (日) 22:08

バージョンアップ

■変更点
1.メモデータのバックアップ、リストアの機能を追加。(カレンダー画面のメニューから)
2.メモ毎に「重要」フラグを付与できる機能を追加。(メモ入力画面のメニューから)

■詳細
●1について
takの個人的な事情により、必要となりました。
・そろそろ機種変したいなぁ。
・実は買ってしまった Nexus7 にメモデータをコピーしたい。
等々。
というわけで、DBファイルを指定のディレクトリにコピーするバックアップ機能と、
指定ファイルをアプリのDBに上書きコピーするリストア機能を実装しました。

▼バックアップ機能について
カレンダー画面のメニューからバックアップを選択すると、バックアップダイアログが表示されます。
さらに[参照]ボタンを押下すると、ディレクトリ選択ダイアログが表示されます。
root直下のディレクトリの一覧が表示され、ディレクトリを選択するとそのディレクトリの中のディレクトリ一覧が表示されます。
権限が無い場合は元の一覧に戻されます。
目的のディレクトリに到達したら[ここを選択]ボタンを押下します。
バックアップダイアログに保存されるバックアップファイルのパスが表示されます。
ファイル名はアプリ側で決めさせてもらいました。
memo_yyyy-MM-dd.db
となります。時間まで含めようかと思いましたが、とりあえずは日までで。
[バックアップ]ボタンを押下すると保存されます。
既に存在する場合には問答無用で上書きします。
他の端末で取り込む場合には、GoogleドライブやEvernote等で連携先の端末に送るのが便利そうです。

▼リストア機能について
カレンダー画面のメニューからリストアを選択すると、リストアダイアログが表示されます。
さらに[参照]ボタンを押下すると、ファイル選択ダイアログが表示されます。
root直下のディレクトリ&ファイルの一覧が表示され、ディレクトリを選択するとそのディレクトリの中のディレクトリ&ファイル一覧が表示されます。
権限が無い場合は元の一覧に戻されます。
ファイルを選択すると、リストアダイアログにリストアされるファイルのパスが表示されます。
[リストア]ボタンを押下するとリストアされます。
ファイルの正しさは、コピー前にコネクションを取得し、「sqlite_master」テーブルに使用しているテーブルを作成した記録が存在するかどうかを見ています。

▼権限の追加について
色々迷いましたが、外部ストレージへの読み書きの権限を追加しました。
やはり外部ストレージに保存してこそのバックアップでしょう。
不評が多いようであれば考え直します(汗)

▼その他
それぞれのコピー機能は簡単に実装できたのですが、問題はディレクトリ、ファイル指定の仕組みでした。
AlertDialog間の画面遷移は、システム的には考慮されていない感じですね。
おかげで、戻るキーで階層を戻る機能の実装は断念しました。
もっとゴテゴテに作らないと難しそうです。無理ではない感じが憎いですが(汗)
苦労しましたが、少々未練が残る機能となってしまいました。
いつかやる気が出たら改修するかもしれません。

●2について
▼重要設定について
メモ入力画面のメニューから重要設定を選択すると、重要設定ダイアログが表示されます。
※事前にメモが保存されている必要があります。
[通常][重要]の二択です。
[重要]を選択すると、画面上部の日付の背景が赤くなります。
[保存]ボタンを押下しないとDBには反映されません。
重要設定されたメモは
・カレンダー画面では日付の背景が赤くなります。
・検索結果画面では日付と本文が赤くなります。
・メモ入力画面では日付の背景が赤くなります。
となります。
カレンダー画面で、検索文字列に「!」(全角、半角どちらでも)を入力して検索すると、重要設定されているメモの一覧が表示されます。

▼その他
メールで要望が来ていたので実装しました。
単純に機能の追加なので、これまでの使用感を妨げることは無いと思います。
が、便利っぽいのでよく参照するメモには設定しておこうかなと思います。
takの場合はポストや宅配ボックスのパスワードですね。

実装に際して1番苦労したのは、検索結果画面です。
当初は重要なメモだけ背景を赤くしようと画策していたのですが、これが難しい。
文字の色を変えるだけだと簡単なのに、フォーカスの具合とかを考慮すると途端に難易度が上がります。
結局、こちらも妥協して文字の色を変える方向で着地しました。
少々未練が残りますです。

基本的にはメモ帳で、タスク管理をするのが目的ではないので、重要度に段階を持たせるといった拡張は今の所考えていません。
要望が多かったらその時に考えることにします。
この機能の実装に伴い、DBのテーブルに管理用カラムを追加しました。
初めてバージョンアップによるDBの変更を実装しましたが、簡単に対応できるようにシステムが仕組みを用意してくれているので対応は楽でした。

---

上記以外にも、各所でリファクタリングを行っています。
ソースの掲載は、広範囲に渡るので止めておきます。
じわじわ機能が増えてきていますね。
元々勉強用に作ったアプリですが、まだまだこのアプリで勉強できそうです。すばらしぃ。

【Android】簡単メモ帳 - バージョン 1.1.3

2012/11/03 (土) 22:11

バージョンアップ

■変更点
1.アプリ情報を表示する機能を追加。
2.カレンダー画面にて、指定の年月のカレンダーにジャンプする機能を追加。
3.起動時にIMEをOFFにする処理を追加。

■詳細
●1について
テスト中にアプリのバージョンを確認したい場面があって、どうせなら機能として追加してしまえという事で追加しました。
人様のアプリでこういうの見た時に「カコイイ!」と思ったというのもあります。
せっかくなので今まで使った事のない機能を使用して見ました。
TextViewの文字列にリンクを付けてみましたが、結構面倒ですねぇ。
文字列中のURLやEMAILの文字列をリンク化するのはレイアウトの定義で指定可能でしたが、文字列リンクを埋め込むにはプログラムが必要でした。
そんなこんなで今回はEMAILの部分は自動でリンク化する方法で、それ以外はプログラムで行いました。
部分的に抜粋。

・表示文字列定義
<string name="top_dialog_info_email">Email omaomatak@gmail.com</string>
<string name="top_dialog_info_play">&lt;a href="https://play.google.com/store/apps/details?id=tak.tools.memo"&gt;Google Play&lt;/a&gt;</string>
<string name="top_dialog_info_hp">&lt;a href="http://takya2.blog33.fc2.com/blog-category-3.html"&gt;HP&lt;/a&gt;</string>
文字列中にHTMLが使えます。
が、XMLの書式上そのまま書けないので文字参照に置き換えて定義しています。
プログラム中で文字列として定義してしまえば簡単そうですが、
多国語対応とかしていると、外部ファイルで定義しないと辛そうです。

・レイアウト定義
<!-- email -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:id="@+id/dialog_info_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/top_dialog_info_email"
android:autoLink="email" />

</LinearLayout>

<!-- Google Play -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:id="@+id/dialog_info_play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />

</LinearLayout>

<!-- HP -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:id="@+id/dialog_info_hp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />

</LinearLayout>
注目はemailのTextViewの要素の「android:autoLink="email"」です。
この指定をしておくと「android:text」に指定した文字列中にメールアドレスの書式があると、自動でリンク化してくれます。
URLの場合は「android:autoLink="web"」になります。
「Google Play」と「HP」の「android:text」は空文字を指定しています。
これはこの後のプログラムで書き換えるからです。

・プログラム
MovementMethod mMethod = LinkMovementMethod.getInstance();

// Google play
TextView play = (TextView) dialogInfoLayout.findViewById(R.id.dialog_info_play);
String playHtml = getResources().getString(R.string.top_dialog_info_play);
CharSequence playStr = Html.fromHtml(playHtml);
play.setText(playStr);
play.setMovementMethod(mMethod);

// HP
TextView hp = (TextView) dialogInfoLayout.findViewById(R.id.dialog_info_hp);
String hpHtml = getResources().getString(R.string.top_dialog_info_hp);
CharSequence hpStr = Html.fromHtml(hpHtml);
hp.setText(hpStr);
hp.setMovementMethod(mMethod);
「CharSequence playStr = Html.fromHtml(playHtml);」で文字列中のHTMLを有効化しています。
「play.setMovementMethod(mMethod);」でクリック時のイベント処理の自動化を行っています。
後者は自動でやってくれてもいいんじゃないかなぁとか思いますが、仕方がない。
ちなみに、これをしないで実行すると、クリック時に例外が発生しました。がっくし。

●2について
コメントで要望があったので対応してみました。
長く使わないと気がつかない機能だなぁと思いました。
且つ、あって損は無いのでメニューから行えるようにしました。
DatePickerを使っていますが、日だけを使用しないのってちょっと一手間必要だったのでちょっとだけソースを。
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);

AlertDialog.Builder jumpDialogBuilder = new AlertDialog.Builder(this);
final DatePicker datePicker = new DatePicker(this);

// 今現在の日付を設定
datePicker.updateDate(year, month, day);

// 日は非表示
int day_id = Resources.getSystem().getIdentifier("day", "id", "android");
datePicker.findViewById(day_id).setVisibility(View.GONE);

// 以降はアイコンなりタイトルなりリスナーなりを設定して表示する。
こんな感じです。
DatePickerは年月日の設定で使われますが、日だけを使わない場合だってあるのに、なんで選択できないんですかねぇ。
ちなみに、入力項目が3つあるからと言って、番号で指定して非表示にすると、言語設定によっては日では無い部分が消えてしまいそうです。
なので、名指しで消し去るのがよさそうです。
以降の処理は「今月」に戻る処理とほぼ同じです。

●3について
tak個人で所有するスマホ「IS05」では、起動時にIMEが自動で立ち上がらないのですが、その他の機種では起動時にIMEが立ち上がる場合があるようです。
なのでちゃんと明示することにしました。
カレンダー画面とメモ入力画面のonCreateにて、
this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
を追加しました。
setContentViewの直前です。


今後の予定ですが、メモデータのバックアップとリストアを検討中です。
このアプリは権限の要求が一切ないのが良いところだと思っているので、できるだけこのままの状態で何とかできないか検討中です。
検索フォーム
RSSリンクの表示
カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。