Viewの下位のViewのデータを参照する
Viewの下位のViewのデータを参照する方法です。
ViewGroup viewGroup = (ViewGroup) view;
int viewCount = viewGroup.getChildCount();
if (viewCount > 0) {
TextView childView=(TextView) viewGroup.getChildAt(0);
String strDate = childView.getText().toString();
}
viewをViewGroupとしてタイプキャストし、1つ目の子供のViewを
viewGroup.getChildAt(0)
で参照しています。
EditTextの下線の色を変える
EditTextの下線の色を変える。
[1] Styles.xml
<resources>
<style name="EditTextColorControl">
<item name="colorControlNormal">@color/colorUnderLineNormal</item>
<item name="colorControlActivated">@color/colorUnderLineActivated</item>
</style>
</resources>
colorControlNormal:通常時の色
colorControlActivated:フォーカスが当たった時の色
[2] colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorUnderLineNormal">#C0C0C0</color>
<color name="colorUnderLineActivated">#FF4081</color>
</resources>
[3] レイアウトのxml
<EditText
android:layout_width="match_parent"
android:layout_height="100dp"
android:inputType="textMultiLine"
android:ems="10"
android:id="@+id/editTextMailText"
android:textAppearance="?android:attr/textAppearanceSmall"
android:gravity="top|start"
android:theme="@style/EditTextColorControl"/>
android:themeで[1]で設定したスタイルを使用しています。
Androidの通知LEDが点灯(点滅)しない!!
Androidの仕様で、スクリーンがONの時は、通知LEDは点灯しないそうです。
確かに!!
スクリーンを点けていた!!
通知LEDは、スクリーンがOFFの時の通知手段なので、スクリーンがONの時は点灯しない仕様なんだそうだ。
Androidのアプリ内購入のテスト用アカウントの追加
Androidのアプリ内購入の開発では、テスト用アカウントは開発用アカウントとは別に作らなければなりません。開発用アカウントではサンドボックスデバッグはできても、実際の販売形態でのテストができないのです。
私は、
に設定していたのですが、Android 5.1.1でも販売形態でのテストをする必要があります。
そこで、色々試した結果、端末を初期化せずにメイン機種にテスト用アカウントを追加し、販売形態でのテストに成功しました。
- メイン機種に、既存のテスト用アカウントを追加する。これは端末で「設定」→「アカウント」→「アカウントの追加」→「Google」→「端末のロックNoの入力(設定されていれば)」→「メールアドレス」に既存のテスト用アカウントのメールアドレスを入力する→・・・で出来ます。
- Playストアを起動し、先ほど追加したテスト用アカウントに切り替えます。
- Playストアでベータ公開されている開発中のアプリを選択しインストールする。
こうすることで、インストールしたベータ公開アプリはテスト用アカウントに紐づけられます。
インターネットで調べると「課金アカウントを切り替えるためには端末を初期化しないといけない」と書いてありますが、上記で端末の初期化は回避できます。
動作確認機種:auのDIGNO rafre KYV36、Android 5.1.1
SQLiteデータベースの更新
SQLiteデータベースの更新は、update()を使用します。
String whereClause = "_id=" + String.valueOf(id);
ContentValues values = new ContentValues();
values.put("date", date);
values.put("kind", kind);
values.put("money", money);
values.put("category", category);
values.put("item", item);
values.put("memo", memo);
mydb.update("pocket_money_table", values, whereClause, null);